apache / apache/jmeter

Improve performances of ResultCollector

Open
#5,348 3 comments 0 reactions 0 assignees View on GitHub
enhancement keyword: PatchAvailable os: All P2
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.