jmeter 中超出了 gc 内存开销

gc memory overhead exceeded in jmeter

我的测试执行在 linux 分 os 中显示 "gc memory overhead exceeded" 异常 7. 我将 jmeter.bat 的堆最大大小更改为 6g,最小大小更改为 512m。我没有使用任何监听器、预处理器、http header 管理器。使用 2 个采样器的正则表达式提取器和常见的常量计时器。我 运行 我在终端中进行测试并将结果存储在 jtl 文件中。我 运行 它用于 250 个用户,启动周期为 1,调度程序为 5400 秒。但问题仍然存在.. 系统配置: 内存 8GB CPU 八核 3.12 GHz 交换内存 16 GB

你说你改了jmeter.bat,但问题是在Linux,这不是'不要使用 jmeter.bat。除非是拼写错误,否则请尝试更改 jmeter 或 jmeter.sh(无论您用来调用 JMeter 的哪个)。

一般来说,我不建议中度使用超过 2GB,重度使用不建议超过 4GB。例如我的设置是:

HEAP="-Xms4096m -Xmx4096m"

而且我可以 运行 多达 300 个并发用户,即使在 GUI 模式下也可以使用大量 samplers/heavy 脚本。设置更大的堆可能会导致 GC 上出现更大的暂停,这可能会导致您遇到异常。

启动 JMeter 后,运行执行以下命令以确保内存设置确实符合您的预期:

ps -ef | grep JMeter

我实际上在 jmeter.bat 文件而不是 jmeter.sh 文件中更改了 Xmx,因为我在这个测试中使用了 linux。 Jmeter.bat 在 windows os 中受支持,jmeter.sh 在 Linux os 中受支持。从而出现上面提到的错误。一旦我在 jmeter.sh 文件中更改它,它就可以完美运行。