https://bz.apache.org/bugzilla/show_bug.cgi?id=64558
Bug ID: 64558
Summary: Improve performances of ResultCollector by using LMAX
Disruptor and Ringbuffer
Product: JMeter
Version: 5.3
Hardware: All
OS: All
Status: NEW
Severity: enhancement
Priority: P2
Component: Main
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: JMETER_5.3.1
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=
--
You are receiving this mail because:
You are the assignee for the bug.