You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "John Cairns (JIRA)" <ji...@apache.org> on 2016/07/12 20:01:20 UTC
[jira] [Commented] (LOG4J2-1430) Add optional support for
Conversant DisruptorBlockingQueue in AsyncAppender
[ https://issues.apache.org/jira/browse/LOG4J2-1430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15373594#comment-15373594 ]
John Cairns commented on LOG4J2-1430:
-------------------------------------
Here is the actual data I collected:
Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
24 cores - hyperthreading disabled
2 thread:
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 10 1696620.726 ± 650776.577 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 10 1857956.303 ± 229077.731 ops/s
3 thread:
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 10 2617984.622 ± 13343.976 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 10 2791841.273 ± 384054.383 ops/s
4 thread:
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 10 3049289.872 ± 84247.960 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 10 2552907.350 ± 72146.621 ops/s
5 thread:
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 10 3027603.165 ± 31798.646 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 10 2770962.194 ± 65659.289 ops/s
6 thread:
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 10 2963524.783 ± 48958.375 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 10 2741728.798 ± 43767.165 ops/s
7 thread:
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 10 2226923.278 ± 67272.401 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 10 1815899.328 ± 91079.403 ops/s
8 thread:
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 10 2498785.188 ± 54002.525 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 10 2407604.284 ± 79145.961 ops/s
9 thread:
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 10 2182057.870 ± 175238.533 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 10 2614756.139 ± 15393.854 ops/s
10 thread:
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 10 2174825.507 ± 22335.915 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 10 2882521.436 ± 11394.649 ops/s
15 thread:
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 10 2181973.945 ± 29673.652 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 10 2739778.681 ± 130812.015 ops/s
20 thread:
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 10 1990073.042 ± 370165.515 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 10 2954562.222 ± 13491.607 ops/s
25 thread:
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndDsrptrNoLoc-noOpAppender.xml thrpt 10 1606942.759 ± 19518.832 ops/s
o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple perf5AsyncApndMpscQNoLoc-noOpAppender.xml thrpt 10 2769796.044 ± 623809.181 ops/s
> Add optional support for Conversant DisruptorBlockingQueue in AsyncAppender
> ---------------------------------------------------------------------------
>
> Key: LOG4J2-1430
> URL: https://issues.apache.org/jira/browse/LOG4J2-1430
> Project: Log4j 2
> Issue Type: New Feature
> Components: Appenders
> Affects Versions: 2.6.1
> Reporter: Matt Sicker
> Assignee: Matt Sicker
> Fix For: 2.7
>
> Attachments: AsyncAppenderPerf01.txt, conversantvsjctoolsnumthreads.jpg, jctools-vs-conversant-service-time.png, log4j2-1430-jctools-tmp-patch.txt
>
>
> [Conversant Disruptor|https://github.com/conversant/disruptor] works as an implementation of BlockingQueue that is much faster than ArrayBlockingQueue. I did some benchmarks earlier and found it to be a bit faster:
> h3. AsyncAppender/ArrayBlockingQueue
> {code}
> Benchmark Mode Samples Score Error Units
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput10Params thrpt 20 1101267.173 ± 17583.204 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput11Params thrpt 20 1128269.255 ± 12188.910 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput1Param thrpt 20 1525470.805 ± 56515.933 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput2Params thrpt 20 1789434.196 ± 42733.475 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput3Params thrpt 20 1803276.278 ± 34938.176 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput4Params thrpt 20 1468550.776 ± 26402.286 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput5Params thrpt 20 1322304.349 ± 22417.997 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput6Params thrpt 20 1179756.489 ± 16502.276 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput7Params thrpt 20 1324660.677 ± 18893.944 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput8Params thrpt 20 1309365.962 ± 19602.489 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput9Params thrpt 20 1422144.180 ± 20815.042 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple thrpt 20 1247862.372 ± 18300.764 ops/s
> {code}
> h3. AsyncAppender/DisruptorBlockingQueue
> {code}
> Benchmark Mode Samples Score Error Units
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput10Params thrpt 20 3704735.586 ± 59766.253 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput11Params thrpt 20 3622175.410 ± 31975.353 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput1Param thrpt 20 6862480.428 ± 121473.276 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput2Params thrpt 20 6193288.988 ± 93545.144 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput3Params thrpt 20 5715621.712 ± 131878.581 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput4Params thrpt 20 5745187.005 ± 213854.016 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput5Params thrpt 20 5307137.396 ± 88135.709 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput6Params thrpt 20 4953015.419 ± 72100.403 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput7Params thrpt 20 4833836.418 ± 52919.314 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput8Params thrpt 20 4353791.507 ± 79047.812 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughput9Params thrpt 20 4136761.624 ± 67804.253 ops/s
> o.a.l.l.p.j.AsyncAppenderLog4j2Benchmark.throughputSimple thrpt 20 6719456.722 ± 187433.301 ops/s
> {code}
> h3. AsyncLogger
> {code}
> Benchmark Mode Samples Score Error Units
> o.a.l.l.p.j.AsyncLoggersBenchmark.throughput10Params thrpt 20 5075883.371 ± 180465.316 ops/s
> o.a.l.l.p.j.AsyncLoggersBenchmark.throughput11Params thrpt 20 4867362.030 ± 193909.465 ops/s
> o.a.l.l.p.j.AsyncLoggersBenchmark.throughput1Param thrpt 20 10294733.024 ± 226536.965 ops/s
> o.a.l.l.p.j.AsyncLoggersBenchmark.throughput2Params thrpt 20 9021650.667 ± 351102.255 ops/s
> o.a.l.l.p.j.AsyncLoggersBenchmark.throughput3Params thrpt 20 8079337.905 ± 115824.975 ops/s
> o.a.l.l.p.j.AsyncLoggersBenchmark.throughput4Params thrpt 20 7347356.788 ± 66598.738 ops/s
> o.a.l.l.p.j.AsyncLoggersBenchmark.throughput5Params thrpt 20 6930636.174 ± 150072.908 ops/s
> o.a.l.l.p.j.AsyncLoggersBenchmark.throughput6Params thrpt 20 6309567.300 ± 293709.787 ops/s
> o.a.l.l.p.j.AsyncLoggersBenchmark.throughput7Params thrpt 20 6051997.196 ± 268405.087 ops/s
> o.a.l.l.p.j.AsyncLoggersBenchmark.throughput8Params thrpt 20 5273376.623 ± 99168.461 ops/s
> o.a.l.l.p.j.AsyncLoggersBenchmark.throughput9Params thrpt 20 5091137.594 ± 150617.444 ops/s
> o.a.l.l.p.j.AsyncLoggersBenchmark.throughputSimple thrpt 20 11136623.731 ± 400350.272 ops/s
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org