Improve performances of ResultCollector
- Dominant language
- Java
- Stars
- 9.5k
- Forks
- 2.3k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 5
Description
**UbikLoadPack support** ([Bug 64558](https://bz.apache.org/bugzilla//show_bug.cgi?id=64558&redirect=false)):
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=
OS: All
Contributor guide
Assessment
This issue has not been assessed yet.