在使用 docker 的分布式测试中运行 jmeter 时,如何在运行时设置 JVM 堆大小



我有以下测试基础设施:

  1. 3 个实例(主 + 2 个从实例(,dockerized
  2. 从 jmeter master 运行命令(所有 3 台机器都使用默认 512m(sudo docker exec -i master /bin/bash -c "/jmeter/apache-jmeter-3.1/bin/jmeter -n -t /home/librarian_journey_Req.jmx -Djava.rmi.server.hostname=yy.yy.yy.yy -Dclient.rmi.localport=60000 -R1xx.xx.xx.xx -j jmeter.log -l result.csv"

上面的命令工作正常并且可以获得结果。 但是希望在运行时将堆大小增加到 3GB。

我尝试使用以下命令:

sudo docker exec -i master /bin/bash -c "JVM_ARGS="-Xms1024m -Xmx1024m" /jmeter/apache-jmeter-3.1/bin/jmeter -n -t /home/librarian_journey_Req.jmx -Djava.rmi.server.hostname=10.135.104.138 -Dclient.rmi.localport=60000 -R10.135.104.135,10.135.104.139 -j jmeter.log -l result.csv"

运行上述命令后,没有任何反应。请指导如何增加它。

您可以在运行容器时覆盖环境变量。此外,通常您不需要使用sudo来执行 docker。所以试试这个:

docker exec -i -e JVM_ARGS="-Xms1024m -Xmx1024m" master /bin/bash ... 

感谢大家的帮助和指导。通过在 docker jmeter 基础映像上设置 ENV 变量,能够将堆大小设置为主机器和从机,如下所示。多亏了@vins。 ENV JVM_ARGS -Xms3G -Xmx3G

最新更新