Hi Remko. Thanks for the reply.
I changed includeLocation to false and re-run the test.
But it didn't change better. QPS is still about 5000.

I found user occupies CPU for about 70% when I run sync log4j1 and sync
log4j2.
But when I run async log4j2, it's only about 30% and system occupies for
about 70%.
All of them(include sync log4j2 and async log4j2) are under very high load
average.
Are these normal numbers?

On Sun, Oct 11, 2015 at 7:56 PM, Remko Popma <remko.po...@gmail.com> wrote:

> See also http://logging.apache.org/log4j/2.x/manual/async.html#Location
> and
>
> http://logging.apache.org/log4j/2.x/manual/async.html#Throughput_of_Logging_With_Location_includeLocationtrue
>
> On Sun, Oct 11, 2015 at 1:54 PM, Remko Popma <remko.po...@gmail.com>
> wrote:
>
> > The problem with the strange performance result is because of the
> > configuration:
> > You have includeLocation=true. This will force Log4j to take a snapshot
> of
> > the stack and is very slow.
> >
> > Your layouts do not actually use this information, and this explains why
> > synchronous logging is faster: synchronous logging will _only_ take a
> > snapshot of the stack when the layout needs it. In your case this is
> never,
> > so you get fast performance.
> >
> > The solution is to change your config to
> > <Root level="info" includeLocation="false">
> >
> > If you test this with async loggers you should see a performance
> > improvement immediately.
> >
> > On Sun, Oct 11, 2015 at 12:21 PM, Strong Su <lovelo...@gmail.com> wrote:
> >
> >> My log4j2 sync configuration is:
> >>
> >> <?xml version="1.0" encoding="UTF-8"?>
> >> <Configuration>
> >>     <Appenders>
> >>         <!-- Async Loggers will auto-flush in batches, so switch off
> >> immediateFlush. -->
> >>         <File name="File" fileName="{PATH}/a.log"
> >> immediateFlush="false" append="false">
> >>             <PatternLayout pattern="%d %-5p [%c{2}] %m%n"/>
> >>         </File>
> >>         <Console name="STDOUT" target="SYSTEM_OUT">
> >>             <PatternLayout pattern="%d %-5p [%c{2}] %m%n"/>
> >>         </Console>
> >>     </Appenders>
> >>
> >>     <Loggers>
> >>         <Root level="info" includeLocation="true">
> >>             <AppenderRef ref="File"/>
> >>             <AppenderRef ref="STDOUT"/>
> >>         </Root>
> >>     </Loggers>
> >>
> >> </Configuration>
> >>
> >> And async configuration change <Root> to <AsyncRoot>
> >>
> >> On Sun, Oct 11, 2015 at 10:51 AM, Remko Popma <remko.po...@gmail.com>
> >> wrote:
> >>
> >> > Can you post your log4j2 configuration?
> >> >
> >> > Sent from my iPhone
> >> >
> >> > > On 2015/10/10, at 21:58, Strong Su <lovelo...@gmail.com> wrote:
> >> > >
> >> > > I insert a log in a http request function on server side. And I
> start
> >> > > requests continually on client side through hundreds of threads.
> >> > > I measure the performance through QPS because server has to print a
> >> log
> >> > > whenever it receive a request. The time delayed by logging will
> >> influence
> >> > > QPS heavily.
> >> > > When I didn't insert a log in the request function, QPS was about
> >> 20000.
> >> > > When I inserted a log4j1 log, QPS was about 10000.
> >> > > When I inserted a log4j2 sync log, QPS was about 18000.
> >> > > But when I inserted a log4j2 asycn log, QPS was only about 5000.
> >> > >
> >> > >> On Sat, Oct 10, 2015 at 8:34 PM, Remko Popma <
> remko.po...@gmail.com>
> >> > wrote:
> >> > >>
> >> > >> How did you measure the good performance (with sync logging) and
> the
> >> bad
> >> > >> performance (with async)? What happens exactly when "it turns
> >> terrible"?
> >> > >>
> >> > >>> On Saturday, 10 October 2015, Strong Su <lovelo...@gmail.com>
> >> wrote:
> >> > >>>
> >> > >>> Hello everyone,
> >> > >>> I'm still testing log4j2 on our projects.
> >> > >>> When using it, I find it has a beautiful performance when using
> sync
> >> > >>> log4j2.
> >> > >>> But it turns terrible when I add -DLog4jContextSelector or change
> >> > <root>
> >> > >> to
> >> > >>> <AsyncRoot> in log4j2.xml to use async log4j2.
> >> > >>> I don't even have a clue on explaining this.What could cause this
> >> > bizarre
> >> > >>> problem?
> >> > >>>
> >> > >>> Thank you.
> >> > >>> Best regards,
> >> > >>> Dylan Su
> >> > >>
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
> >> > For additional commands, e-mail: log4j-user-h...@logging.apache.org
> >> >
> >> >
> >>
> >
> >
>

Reply via email to