'Apache JMeter Constant Throughput Timer not increasing number of Requests per Second

In my test plan , I only have one Thread Group. Thread Group Screenshot

I have CSV file with 10 users and 15 API requests in Loop Controller. Loop Controller Screenshot

All of my requests are passing, An average of 55 requests/second were being sent but I want to know the maximum capacity of the server.I need to sent 150 requests per second, So I added Constant Throughput Timer with Target Throughput 9000 Constant Throughput Timer Screenshot .But it is still sending an average of 55 requests/ second. Here is the screenshot of command line run output. Output

Can anyone help me understand what I am doing wrong here ? Which values should I change in order to acheive 150 requests per second ?



Solution 1:[1]

JMeter sends request, WAIT for answer, send another request

If you add timer, it basically add some sleep to this -> you can't increase throughput, only decrease. Check manual https://jmeter.apache.org/usermanual/component_reference.html#Constant_Throughput_Timer

You should check your server - Load, CPU, Memory, IOs - disks, network ...

Check your JMeter machine as well

Are the answers from server alright? Do you check e.g. HTTP 200 OK?

You can try add more ramp up time, inscrease/decrease user count, but first check your server!

Solution 2:[2]

  1. You're trying to reach 150 requests per second with each thread, you need to amend at least this bit:

    enter image description here

  2. You're trying to reach 150 requests per second with 10 users which means that each user needs to execute 15 requests per second. It's only possible if response time of your application is 66 milliseconds or less and the average response time of your application is around 200 milliseconds so it explains the actual result

JMeter's Constant Throughput Timer can only pause the threads in order to limit requests execution rate to the desired value, it won't kick off extra threads if current amount is not sufficient.

So the options are in:

  • Increase the number of threads in the Thread Group to i.e. 50 (you may need even more)
  • Or consider switching to Throughput Shaping Timer and Concurrency Thread Group combination, the Throughput Shaping Timer is more "precise" and it can be connected to the Concurrency Thread Group via Feedback Function so you will be able to kick off more threads to reach and maintain the desired throughput

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 lojza
Solution 2 Dmitri T