如何为 Jmeter Slave 实例设置堆大小

How to set Heap size for Jmeter Slave instance

我有一个分布式 Jmeter 主从设置。在将吞吐量增加到更高的数字时,我开始收到堆 space.

的 OOM 异常

我找到了这个 post: How to Increase Heap size 增加 jmeter.bat 文件中的 HEAP 大小(在我的例子中是 windows)。然而,对于 Jmeter 从属机器,我们不通过 jmeter.bat 而是通过 jmeter.server.bat 文件启动 jmeter。我检查过这个文件没有任何 HEAP 内存参数。

关于如何增加从属实例的堆内存大小有什么建议吗?

启动 Jmeter 从站的命令如下所示:

nohup java -jar "/bin/ApacheJMeter.jar" "-Djava.rmi.server.hostname=127.0.0.1" -Dserver_port=10000 -s -j jmeter-server.log > /dev/null 2>&1

所以如果你想更改 Java 参数,只需在 java:

之后传递它
nohup java -Xms512m -Xmx512m -XX:+UseCMSInitiatingOccupancyOnly ...

查看 jmeter-server.bat 源代码:

  1. 它尊重JVM_ARGS环境变量
  2. 调用jmeter.bat under the hood which in its turn respects HEAP环境变量

所以如果你在 Windows,你可以这样做:

set HEAP=-Xms1G -Xmx10G -XX:MaxMetaspaceSize=256M && jmeter-server.bat

并且从属实例的 JVM 堆将增加到 10 GB。


以上说明适用于 JMeter 4.0,行为可能与以前的版本不同。