JMeter script does not achieve required TPS/RPS on Linux VM, but achieves it on MAC system running on GUI mode

Viewed 22

I have a script where I am using Throughput Shaping Timer to achieve 100 TPS/RPS.

When the script is executed on MAC System using GUI Mode, it is able to achieve ~99 TPS/RPS. But, when I execute it on Linux System it hardly goes beyond 60 RPS/TPS.

Following logs received on Linux OS (same script, so Thread Group settings remain as is):

No free threads available in current Thread Group Device Service

Some of the details given below:

  1. JMeter version is 5.4.3 on both the systems (copied the same JMeter to Linux VM as well)
  2. MAC OS version is: 11.6
  3. Linux OS version is: Red Hat Enterprise Linux 8.6 (Ootpa)
  4. Heap setting on both the systems are given below (even increased it to 13g on Linux VM):

: "${HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}"

Please let me know which settings I should do to achieve similar TPS/RPS as with my GUI on MAC.

Thread Group Setting shown in the attached image. enter image description here

1 Answers
  1. First of all GUI mode is for tests development and debugging, when it comes to test execution you should be running tests in command-line non-GUI mode in order to get accurate results
  2. Make sure to use the same Java version
  3. Make sure to use the same (or at least similar) hardware
  4. Make sure to check resources consumption (CPU, RAM, Disk, Network, Swap usage, etc.) as it you're hitting the hardware or OS limits you might get false-negative results because JMeter cannot run requests as fast as it can and if this is the case you might need another Linux box and run JMeter in distributed mode
  5. No free threads available in current Thread Group means that there is not enough threads in order to reach/maintain the desired throughput, you can try increasing the number of threads in the Thread Group or switch to Concurrency Thread Group and connect it to the Throughput Shaping Timer via Feedback function
Related