jmeter

How to set JVM heap size at run time when running jmeter in distributed testing using docker


I have below test infrastructure:

  1. 3 instances (master + 2 slaves), dockerized
  2. Run command from jmeter master (default 512m is used in all 3 machines) 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"

the above command works fine and getting results also. however wanted to increase the heap size to 3gb at run time.

I had tried using below command:

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"

after running the above command nothing happens. Please guide how can it be increased.


Solution

  • You can override environment variables when running containers. Also, usually you don't need to use sudo to execute docker. So try this:

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