Jmeter behaviour quirks

Viewed 38

Was running some JMeter end-to-end tests to test our the speed of our api. We measure timings of different aspects of our service, and our dashboard shows that they vary(rise/fall) by the same amount (whether it's time to download, or process images, etc). This is pretty unexpected as the test is being done with just one image and we expect things like image download to be fairly constant.thread graphs

I reason that this could be something on the JMeter side, though I can't wrap my head around what would cause these patterns across different threads in our service. Is is some way in which the requests are being made by Jmeter?

Details:

Machine: `c5n.2xlarge` AWS instance running ubuntu 20.04. 8vCPUs, 21GB RAM.
Threads : 128
ramp-up-time : 20
Loops : 70
Java : 
   openjdk version "11.0.10" 2021-01-19
   OpenJDK Runtime Environment (build 11.0.10+9-Ubuntu-0ubuntu1.20.04)
   OpenJDK 64-Bit Server VM (build 11.0.10+9-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
JVM heap size : 4096Mb
1 Answers

There are many possible reasons for the fluctuating response time and your question doesn't contain sufficient amount of information in order to be able to come up with the comprehensive analysis so I can only provide several generic pieces of advice

  1. Use a profiler tool to see where your application is spending time and resources
  2. Monitor your application resources like CPU, RAM, Network and Disk IO, etc, it can be done using JMeter PerfMon Plugin
  3. Make sure to follow JMeter Best Practices
  4. The same as in point 2 but this time for your JMeter instance
  5. The same as point 1 but for JMeter instance, it might be the case JMeter is not properly configured and it does garbage collection resulting in spikes, see i.e. Concurrent, High Throughput Performance Testing with JMeter article for example analysis flow
Related