Hello Team, We have noticed a major contention in JMeter that becomes a major problem at high scale. The issue is related to the PrintWriter in ResultCollector. In tests with high throughput (> 100 req/s), the lock taken by PrintWriter#println() will lead many threads to block waiting for the lock to be released (even with the underlying buffer).
We implemented a fix based on LMAX-Disruptor library: - https://github.com/LMAX-Exchange/disruptor You can review the current PR on our repository and give your feedback for the upcoming PR: - https://github.com/ubikloadpack/jmeter/pull/61/files?w=1 You'll find in the PR and ODS document showing some results. The best ones made with dev/test.jmx being : *BlockingWaitStrategy* *Threads \ Ring buffer size* *0* *1024* *65536* *131072* *262144* *524288* *Max. gain* *90* 131580918 144970934 161682916 178337178 N/A N/A 35.53 % *500* 129404418 8589281 186455414 183922157 N/A N/A 44.09 % *3000* 125778729 23311727 11658406 25689004 174138609 174434147 38.68 % Please note it is critical to disable the Summariser during the test as it degrades throughput (we'll provide a future patch for this), using: - -Jsummariser.name= -- Regards Florent, Philippe and Benoit from Ubik Load Pack <http://ubikloadpack.com> Team Follow us on Twitter <http://twitter.com/ubikloadpack> Read our blog <https://www.ubik-ingenierie.com/blog>
