pmouawad opened a new pull request #601:
URL: https://github.com/apache/jmeter/pull/601


   ## Description
   
   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 buffering).
   
   We implemented a fix based on LMAX-Disruptor library:
   
   - https://github.com/LMAX-Exchange/disruptor
   
   
   You'll find an ODS document showing some results:
   
   - https://github.com/ubikloadpack/jmeter/pull/61/files?w=1
   
   The best ones made with dev/test_bug_64558.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=
   
   Contributed by UbikLoadPack Team:
   
   - Florent
   - Benoit
   - Philippe
   
   ## Motivation and Context
   
   See:
   
   https://bz.apache.org/bugzilla/show_bug.cgi?id=64558
   
   ## How Has This Been Tested?
   
   Benchmark :
   
   jmeter -Jsummary= -n -t test_bug_64558.jmx -l results.csv 
   
   Results in stats.ods
   
   ## Types of changes
   
   - New feature (non-breaking change which adds functionality)
   
   ## Checklist:
   
   - [X] My code follows the [code style][style-guide] of this project.
   - [X] I have updated the documentation accordingly.
   
   [style-guide]: https://wiki.apache.org/jmeter/CodeStyleGuidelines
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to