Sometimes we execute JMeter script on production and it causes a load on servers
I don't want to stop the test, only reduce the load on server
How can I reduce threads number on runtime to avoid performance issues on server on load?
I saw similar question asked in the past with answers that say it cannot be done
The short answer is: no, you cannot change the number of threads dynamically during runtime. Each thread count value is only read once when the test plan is first compiled and is not resolved again after this point, so it remains fixed.
If it can't be done, can/should I add timers that can add pauses on runtime?
EDIT I saw there's an open enhancement: Add ability to modify load while a test is running
I saw blazemeter blog post about using Beanshell server, but it seems an overhead for such rare cases
able to change the load generated by the performance test, without stopping the test. This can be done by using Apache JMeter™´s Constant Throughput Timer and the Beanshell server