You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@jmeter.apache.org by bu...@apache.org on 2020/06/24 14:44:02 UTC

[Bug 64558] New: Improve performances of ResultCollector by using LMAX Disruptor and Ringbuffer

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: issues@jmeter.apache.org
          Reporter: support@ubikloadpack.com
  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.

[Bug 64558] Improve performances of ResultCollector

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=64558

UbikLoadPack support <su...@ubikloadpack.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Improve performances of     |Improve performances of
                   |ResultCollector by using    |ResultCollector
                   |LMAX Disruptor and          |
                   |Ringbuffer                  |

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 64558] Improve performances of ResultCollector

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=64558

--- Comment #3 from UbikLoadPack support <su...@ubikloadpack.com> ---
(In reply to UbikLoadPack support from comment #2)
> (In reply to UbikLoadPack support from comment #1)
> > See: 
> > 
> > https://github.com/apache/jmeter/pull/601/
> 
> See:
> 
> https://github.com/apache/jmeter/pull/602/

See:
https://github.com/apache/jmeter/pull/603/

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 64558] Improve performances of ResultCollector by using LMAX Disruptor and Ringbuffer

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=64558

UbikLoadPack support <su...@ubikloadpack.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |PatchAvailable

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 64558] Improve performances of ResultCollector by using LMAX Disruptor and Ringbuffer

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=64558

--- Comment #1 from UbikLoadPack support <su...@ubikloadpack.com> ---
See: 

https://github.com/apache/jmeter/pull/601/

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 64558] Improve performances of ResultCollector by using LMAX Disruptor and Ringbuffer

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=64558

--- Comment #2 from UbikLoadPack support <su...@ubikloadpack.com> ---
(In reply to UbikLoadPack support from comment #1)
> See: 
> 
> https://github.com/apache/jmeter/pull/601/

See:

https://github.com/apache/jmeter/pull/602/

-- 
You are receiving this mail because:
You are the assignee for the bug.