首页 > 解决方案 > Jmeter 采样器 'v1/pages/...' 产生 'java.lang.OutOfMemoryError: Java heap space' 错误

问题描述

当我在 Azure 管道上使用 100 个线程运行 JMeter 测试时,出现“java.lang.OutOfMemoryError: Java heap space”错误。我试图增加 HEAP:

set HEAP=-Xms512m -Xmx2048m

甚至更多但没有效果。

我注意到采样器'v1/pages/...'会产生这个堆错误。我无法找到有关这种采样器的任何信息,所以我有两个问题:

  1. 值得保留这个采样器吗?也许它不是那么重要,删除它可以解决我的问题。这个“v1/pages”来自“//content-autofill.googleapis.com/v1/pages/”,看起来没什么重要的

  2. 您知道处理此 HEAP 错误的任何其他方法吗?每个人都在说增加这个 Xmx 的价值,但这对我不起作用。

提前致谢!

在此处输入图像描述

在此处输入图像描述 在此处输入图像描述

标签: jmeterheap-memory

解决方案


  1. v1/pages只是一个标签,不要浪费时间搜索它,采样器标签可能完全不同:

    在此处输入图像描述

    如果您打开.jtl 结果文件,您应该会看到请求的 URL,一旦弄清楚这一点,您就可以决定是否保留它。

    一个可能的原因是,这个请求返回的响应很大,不适合内存,如果是这种情况并且您对响应不太感兴趣 - 您可以勾选“将响应保存为 MD5 哈希”:

    在此处输入图像描述

  2. 有两种方法可以修复“Java 堆空间”错误:

    • 减少堆使用,即使用 MD5 和查看此提示或考虑进行分布式测试
    • 增加堆大小。例如,2 GB 可能不够,如果您有足够的 RAM,请尝试分配更多堆。此外,如果您的管道在 Linux 上运行,您需要稍微修改您的命令,使其看起来像:HEAP=-Xms512m -Xmx2048m && export HEAP && ./jmeter -n -t test.jmx ......

推荐阅读