The stack trace you showed shouldn't be going beyond the isDebugEnabled()
check if your log4j properties is configured at a higher log level.
Regarding your producer dropping messages, have you checked the produce
metrics ("kafka.network":name={Produce-TotalTimeMs",type="RequestMetrics")
on the broker to see if the bottleneck is on the server or not?

On Sun, Dec 14, 2014 at 9:31 PM, Rajiv Kurian <ra...@signalfuse.com> wrote:
>
> I'll try it and let you guys know. Is there anything that comes to mind
> from these log messages though? Why would there be so many log messages?
> Would you suggest doing something else to find out why things are working
> so poorly? I am worried about making the risky transition to the beta
> producer client and finding out that things don't improve at all. Another
> thing that was peculiar was that only one of my producers (out of 3, each
> on a separate host) were dropping so many messages.
>
> On Sun, Dec 14, 2014 at 4:58 PM, Neha Narkhede <n...@confluent.io> wrote:
>
> > Thanks for reporting the issue, Rajiv. Since we are actively phasing out
> > the old client, it will be very helpful to know what the behavior on the
> > new client is.
> >
> >
> > On Fri, Dec 12, 2014 at 8:12 PM, Rajiv Kurian <ra...@signalfuse.com>
> > wrote:
> > >
> > > I am using the kafka java api async client (the one that wraps the
> Scala
> > > client). It's dropping quite a bit of data due to the queue being full,
> > and
> > > the process ends up taking a lot of cpu too.
> > >
> > > I am posting to a topic with 1024 partitions (across 3 brokers) - maybe
> > the
> > > high number of brokers is one of the issues. Profiling with YourKit
> > showed
> > > 37% of my CPU being spent on
> > kafka.producer.async.ProducerSendThread.run().
> > > So seems like the producer is not able to keep up with my application
> and
> > > starts dropping. When I expand this waterfall in YourKit, I see that
> 23%
> > > total (not out of the 37%) is being spent on logging! Something like
> > this:
> > >
> > >
> > >
> >
> kafka.producer.BrokerPartitionInfo$$anonfun$getBrokerPartitionInfo$2.apply(PartitionMetadata)
> > > ->kafka.producer.BrokerPartitionInfo.debug(Function0)
> > >    ->kafka.utils.Logging$class.debug(Logging, Function0)
> > >       ->org.apache.log4j.Category.isDebugEnabled()
> > >          ->... (a bunch of other things that finally break down into)
> > >              ->LoggerContext.java:252
> > >
> > >
> >
> ch.qos.logback.classic.spi.TurboFilterList.getTurboFilterChainDecision(Marker,
> > > Logger, Level, String, Object[], Throwable)
> > >
> > > I am not sure what's going on here. When I look at my process log, none
> > of
> > > these messages are actually logged (probably because of the log level).
> > > Further I don't see anything very suspicious on the broker logs. They
> are
> > > at 60-70% cpu.
> > >
> > > I am planning to try the new Java beta producer client, but I am afraid
> > > something deeper is going on here, that might not be solved by
> switching
> > to
> > > the newer client.
> > >
> >
> >
> > --
> > Thanks,
> > Neha
> >
>


-- 
Thanks,
Neha

Reply via email to