pmouawad opened a new pull request #601: URL: https://github.com/apache/jmeter/pull/601
## Description 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 buffering). We implemented a fix based on LMAX-Disruptor library: - https://github.com/LMAX-Exchange/disruptor You'll find an ODS document showing some results: - https://github.com/ubikloadpack/jmeter/pull/61/files?w=1 The best ones made with dev/test_bug_64558.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= Contributed by UbikLoadPack Team: - Florent - Benoit - Philippe ## Motivation and Context See: https://bz.apache.org/bugzilla/show_bug.cgi?id=64558 ## How Has This Been Tested? Benchmark : jmeter -Jsummary= -n -t test_bug_64558.jmx -l results.csv Results in stats.ods ## Types of changes - New feature (non-breaking change which adds functionality) ## Checklist: - [X] My code follows the [code style][style-guide] of this project. - [X] I have updated the documentation accordingly. [style-guide]: https://wiki.apache.org/jmeter/CodeStyleGuidelines ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org