[GitHub] qihongxu edited a comment on issue #2494: ARTEMIS-2224 Reduce contention on LivePageCacheImpl

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[GitHub] qihongxu edited a comment on issue #2494: ARTEMIS-2224 Reduce contention on LivePageCacheImpl

GitBox
qihongxu edited a comment on issue #2494: ARTEMIS-2224 Reduce contention on LivePageCacheImpl
URL: https://github.com/apache/activemq-artemis/pull/2494#issuecomment-454254479
 
 
   > @qihongxu Both the changes have been merged ie if you want to perform some tests to check if is working as expected everything is on master!
   
   Sorry for late reply. I've been busy recently and just got some time for testing this change.
   As stated this change mainly focused on improving perf on page mode, especially when livePageCache is being visited by both producers and consumers. In order to test it we applied settings like below:
   
   page-size: 10M->900M
   max-size: 20M->950M
   global-max-size: 1GB
   
   All other settings remain unchanged as we did in ARTEMIS-2216. The reason to do so is that I want more observe time to trace its activities and limited the number of pages to 1 (livePage) at the same time. Then we started to evaluate 2 versions: one the original master and the other applied 2 commits in this pr.
   
   After test we found that producer side is fine. So in the following report we tested “only consumer” scenario.
     
   **The Original Ver: 200 threads of consumer**
   ![image](https://user-images.githubusercontent.com/10609615/51155195-acddb600-18b1-11e9-8994-363381897253.png)
   As seen the consumer suffer from low tps at the very beginning, and as time went by tps even dropped to 100~200ish. From flamegraph generated by async-profiler(@franz1981 thx for recommending this tool, much easier to use than jfr!) we saw a lot unnecessary queries from ackTx. And the lock made things even worse, see attached stacks.
   [Locks - livepagecache.txt](https://github.com/apache/activemq-artemis/files/2757990/Locks.-.livepagecache.txt)
   
   ![image](https://user-images.githubusercontent.com/10609615/51156220-8457bb00-18b5-11e9-82f6-d8adc7227358.png)
   
   **The New Ver: 200 threads of consumer**
   ![image](https://user-images.githubusercontent.com/10609615/51156259-b1a46900-18b5-11e9-81d5-57b586497b9e.png)
   Test result seems much better in new version. Although at most time it obtained a 3k~6k tps, it ran smoothly and finally consumed all messages. From flamegraph only 1% of samples are from ackTx queries. At the end of test the perf boosted to 30k tps, which might suggest that message count/page settings play an important role in perf.
   ![image](https://user-images.githubusercontent.com/10609615/51156662-8cb0f580-18b7-11e9-8a7b-fd8596619f49.png)
   
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[hidden email]


With regards,
Apache Git Services