You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@kafka.apache.org by Prashant Prakash <pr...@gmail.com> on 2014/10/14 20:48:31 UTC

Impact of logging on Kafka through put

Dear Kafka Users,

We are using kafka-2.8.0-0.8.8 in our application development. The
application is running with two brokers each having one partition.

We are using high level api to send message over async producer. While
testing through put of our application we have observed that  more than 60
% of the time was spent in getPartitionListForTopic method of
DefaultEventHandler class.

We have set topic.metadata.refresh.interval.ms=-1. The method
 (getPartitionListForTopic ) is invoked per message and primarily returns
the broker-partition info for the topic from topicPartitionInfo map apart
from logging.

To narrow down time intensive process we  had explicitly set log level as
* log4j.logger.kafka.producer.async.DefaultEventHandler=OFF
* log4j.logger.kafka.producer.BrokerPartitionInfo=OFF

The above change resulted in 3 times increase in producer through put. We
have verified the above behavior consistently.

Has similar behavior been observed earlier ?
If not then any suggestion, areas to look upon to drill down the issue.

We are thinking of setting the log level for the mentioned class as ERROR.

Please share views, solutions.

Thank you very much.

Best regards
Prashant

Re: Impact of logging on Kafka through put

Posted by Prashant Prakash <pr...@gmail.com>.
On further investigation we found that similar issue is already filed under
https://issues.apache.org/jira/browse/KAFKA-1351

To re validate we explicitly commented per message logs
in BrokerPartitionInfo.scala and DefaultEventHandler.scala.

The disabling of logs resulted in 5 times increase in producer through put.

Best regards
Prashant


On Wed, Oct 15, 2014 at 12:18 AM, Prashant Prakash <pr...@gmail.com>
wrote:

> Dear Kafka Users,
>
> We are using kafka-2.8.0-0.8.8 in our application development. The
> application is running with two brokers each having one partition.
>
> We are using high level api to send message over async producer. While
> testing through put of our application we have observed that  more than 60
> % of the time was spent in getPartitionListForTopic method of
> DefaultEventHandler class.
>
> We have set topic.metadata.refresh.interval.ms=-1. The method
>  (getPartitionListForTopic ) is invoked per message and primarily returns
> the broker-partition info for the topic from topicPartitionInfo map apart
> from logging.
>
> To narrow down time intensive process we  had explicitly set log level as
> * log4j.logger.kafka.producer.async.DefaultEventHandler=OFF
> * log4j.logger.kafka.producer.BrokerPartitionInfo=OFF
>
> The above change resulted in 3 times increase in producer through put. We
> have verified the above behavior consistently.
>
> Has similar behavior been observed earlier ?
> If not then any suggestion, areas to look upon to drill down the issue.
>
> We are thinking of setting the log level for the mentioned class as ERROR.
>
> Please share views, solutions.
>
> Thank you very much.
>
> Best regards
> Prashant
>
>
>
>
>
>
>