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.

Reply via email to