I use Ultimate Thread Group for performance testing in JMeter. In combination with a timer I want to scale the number of users/threads dynamically while each user has a constant throughput of e.g. 10 requests/sec.
When the Ultimate Thread Group increases the number of users, the total request rate per second will have a high peak for a short time. After the peak, the request rate is as expected.
For example, I get this trace: Start with 40 users, 10 requests per second for each user: 40 * 10 = 400 requests/second. Increase the number of users up to 60, I expect 60 * 10 = 600 requests/second, but I get a peak of more than 3959 requests/second at the beginning.
summary = 366401 in 00:15:16 = 400.0/s Avg: 1 Min: 0 Max: 1071 Err: 0 (0.00%)
summary + 12000 in 00:00:30 = 400.0/s Avg: 1 Min: 0 Max: 20 Err: 0 (0.00%) Active: 40 Started: 40 Finished: 0
summary = 378401 in 00:15:46 = 400.0/s Avg: 1 Min: 0 Max: 1071 Err: 0 (0.00%)
summary + 12000 in 00:00:30 = 400.0/s Avg: 1 Min: 0 Max: 44 Err: 0 (0.00%) Active: 40 Started: 40 Finished: 0
summary = 390401 in 00:16:16 = 400.0/s Avg: 1 Min: 0 Max: 1071 Err: 0 (0.00%)
summary + 31784 in 00:00:30 = 1061.9/s Avg: 4 Min: 0 Max: 414 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 422185 in 00:16:46 = 419.7/s Avg: 1 Min: 0 Max: 1071 Err: 0 (0.00%)
summary + 118770 in 00:00:30 = 3959.0/s Avg: 5 Min: 0 Max: 493 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 540955 in 00:17:16 = 522.2/s Avg: 2 Min: 0 Max: 1071 Err: 0 (0.00%)
summary + 79419 in 00:00:30 = 2647.3/s Avg: 10 Min: 0 Max: 1435 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 620374 in 00:17:46 = 582.0/s Avg: 3 Min: 0 Max: 1435 Err: 0 (0.00%)
summary + 37227 in 00:00:30 = 1238.1/s Avg: 6 Min: 0 Max: 1354 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 657601 in 00:18:16 = 600.0/s Avg: 3 Min: 0 Max: 1435 Err: 0 (0.00%)
summary + 18000 in 00:00:30 = 600.3/s Avg: 2 Min: 0 Max: 219 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
summary = 675601 in 00:18:46 = 600.0/s Avg: 3 Min: 0 Max: 1435 Err: 0 (0.00%)
summary + 18000 in 00:00:30 = 599.9/s Avg: 1 Min: 0 Max: 46 Err: 0 (0.00%) Active: 60 Started: 60 Finished: 0
visualized it looks like this:

Is there a way to avoid this peak? (I also get this peak if I increase the number of users from 60 to 80.80 to 100, ...)