Thanks Remko for the valuable insight on queue size and ring buffer size in
log4j and logback. I will make adjustments to the settings and run the
test again.
On Tue, Oct 1, 2013 at 10:02 AM, Remko Popma remko.po...@gmail.com wrote:
Michael,
I finally got around to looking at the test results you posted on Github (
https://github.com/michaelzhou999/logging-profiling).
Very extensive testing, I can tell you put a lot of work into it!
I was initially a bit surprised by your Log4J2 finding that at ten threads
or more, synchronous logging with RandomAccessFile is even faster than
async logging with RandomAccessFile. But I believe this is because the
performance test logs 500,000 events, and the async logger ring buffer by
default only has 256*1024 slots. When the ring buffer is full the test can
only put new log events into the ring buffer when previous events have been
taken out, so essentially it will be running at the speed of the
RandomAccessFile appender with the additional overhead of going through the
ring buffer.
To be honest I am not sure why this effect does not occur with 1 - 5
threads.
Also interesting to see a similar phenomenon with LogBack:
async appender is faster with 1 - 5 threads, but from 10 threads and up,
synchronous logging is faster than asynchrous logging.
In this case, the LogBack default queue size is only 256, and it is a
fixed-size queue, so it is basically full all the way through the test. So
I think what we're seeing here is the throughput of the underlying appender
plus the contention of the multiple threads trying to add to the queue.
Again unsure about the difference between 10+ threads and 1 - 5 threads...
(I noticed you correctly set the discardingThreshold to zero for LogBack
so it won't start dropping trace/debug/info events when the queue is 80%
full. Well-spotted! Don't allow LogBack to cheat! :-) )
But to make the test fair the LogBack queue size should really be the same
as the Log4J2 async logger queue size (256*1024).
Actually, I would recommend making the queues large enough to contain all
events. If you want to log 500,000 in the test, the queues should be at
least that size. Otherwise the async test will actually be measuring a
partially async and partially synchronous logging.
One final note: are you aware that Log4J2 natively supports SLF4J-style
formatting? e.g. logger.info(hi {}, world!);
Overall, I was happy to see that your results are similar to the results I
reported in the performance section of the Async Loggers page.
Best regards,
Remko
On Sun, Sep 29, 2013 at 9:59 PM, Michael Zhou michael.z...@gmail.com
wrote:
Hi Remko,
You can find the micro-benchmarking tool I wrote on Github:
https://github.com/michaelzhou999/logging-profiling
Drop me a message if you have any questions. Thanks
Michael
On Sat, Sep 28, 2013 at 9:34 PM, Remko Popma remko.po...@gmail.com
wrote:
Michael,
I'd be interested to see your benchmarking code and results. Is it
possible for you to share them?
Remko
Sent from my iPhone
On 2013/09/29, at 7:58, Michael Zhou michael.z...@gmail.com wrote:
The micro-benchmark testing I wrote to compare Log4j 1 and 2 shows
considerable performance gain in favor of Log4j 2. I have only one
request
for your consideration: simplifying the way to get all loggers in the
system and set/reset logging levels for certain loggers. This is
very
easy
to do in Log4j 1, but thanks to the rewrite of API and implementation
in
Log4j 2, it becomes complicated. I did search and read previous
discussions (in August and May) on this topic, and consider this a
much
needed feature request. Thanks
On Sat, Sep 28, 2013 at 2:44 AM, Ralph Goers
ralph.go...@dslextreme.com
wrote:
I'd prefer to turn this around and ask a couple of questions:
1. Why do you need to know the official release date? Is
something
blocking you from using Log4j 2?
2. Are you currently using the beta releases? Are you satisfied
that
it
is production ready in your environment?
The answers to the questions above are important for us as that is
the
basis for us labeling the release 2.0 GA vs 2.0 beta10 (or 2.0 RC1).
Ralph
On Sep 27, 2013, at 8:07 AM, Jingdong Sun wrote:
Can anyone tell me when the log4j 2 official release will be
available?
Thanks.
Jingdong Sun
InfoSphere Streams Development
Phone 507 253-5958 (T/L 553-5958)
jind...@us.ibm.com
-
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org
--
Michael
-
To unsubscribe, e-mail: log4j-user-unsubscr