Constant Throughput Timer become inaccurate above 6000 samples/min
Nick Danielsson <[email protected]> Thu, 28 Mar 2024 10:37:42 +0000
| Newsgroups | gmane.comp.jakarta.jmeter.user |
|---|---|
| Message-ID | <[email protected]> |
Hello!
As the subject suggest I'm having trouble getting the expected throughput when I pass 6000 samples/min to the Constant Throughput Timer, it seems between 6250-10500 samples/min the throughput is usually lower then expected but when it is at 11000 samples/min or above the throughput is always higher then expected.
I have a testplan with 3 scenarios, the setup is the same for all 3 and they read from the same testdatasource (csv-file) via CSV Data Set Config.
We have a setUp Thread Group where we set some propertys, throughput, thread count, test scenario, etc, with some JSR223 PreProcessors and JSR223 samplers, then the "main" Thread Group begins. It contains the following in order:
Constant Throughput Timer - with target throughput = ${__property(Tpm)} (set as a property in the setUp depending on scenario), and Calculate Throughput based on = all active threads (shared)
X3 If Controllers - One for each scenario. Each If Controller have X amount of Throughput Controllers, one for every HTTP Request to make sure the distribution of requests reflects production. In the Throughput Controller we have a Module Controller pointing to a Test Fragment containing that specific HTTP Request. All of these Test Fragments are located in the Test Plan root outside of the main Thread Group and almost everyone of the Test Fragments are made up of a single HTTP Request.
[cid:[email protected]]
That's basically it, every scenario is built the exact same way. Now to the problem...
The first scenario has a throughput of 2400 samples/min (40 samples/sec), 20 threads and works great, perfect distribution of both HTTP requests and throughput, no problems here.
The second scenario has a throughput of 14000 samples/min (233,3 samples/sec) 50 threads, the distribution of requests are perfect but the throughput is always off by about 1000 samples/min (16,6 samples/sec) higher than what is set in the constant throughput timer.
The third scenario has a throughput of 10200 samples/min (170 samples/sec) 50 threads, the distribution of requests are perfect but the throughput is off here as well, not by as much but till by about 500 samples/min lower than what is set in the constant throughput timer.
I have tried with increased amount of threads and lower amount of threads, but this doesn't affect the outcome.
I've tried changing the throughput and I get some strange results from it, when the throughput is at or above 11000 it seem to always result in about 1000 samples/min higher then what was set. When the throughput is at between 6250 - 10500 it usually results in an output that is around 200 - 500 samples/min lower then what was set.
There seem to be some cut off happening around 6000 samples/min because when I run tests with that throughput or lower they're close to perfect.
I've been monitoring the server generating the load and the test target servers and they all show no sign of overworking.
We use 1 server to generate the load and it runs Jmeter 5.6.2
Kind regards, Nick
P Överväg miljöpåverkan innan du skriver ut detta e-brev.
Vill du veta hur Pensionsmyndigheten hanterar dina personuppgifter? Se myndighetens webbplats.
https://www.pensionsmyndigheten.se/om-pensionsmyndigheten/allmanna-handlingar/om-personuppgifter
image003.png
(image/png, 474.4 KB) - not displayed