Thank you Kishore, I made the buffer twice the size of the batch size and
the latency has reduced significantly.

But is there only one thread io thread sending the batches? Can I increase
the number of threads sending the batches so more than one batch could be
sent at the same time?

Thanks.



On Thu, Aug 13, 2015 at 5:38 PM, Kishore Senji <kse...@gmail.com> wrote:

> Your batch.size is 8196 and your buffer.memory is 67108864. This means
> 67108864/8196
> ~ 8188 batches are in memory ready to the sent. There is only one thread io
> thread sending them. I would guess that the io thread (
> kafka-producer-network-thread) would be busy. Please check it in visual vm.
>
> In steady state, every batch has to wait for the previous 8187 batches to
> be done before it gets a chance to be sent out, but the latency is counted
> from the time is added to the queue. This is the reason that you are seeing
> very high end-to-end latency.
>
> Have the buffer.memory to be only twice that of the batch.size so that
> while one is in flight, you can another batch ready to go (and the
> KafkaProducer would block to send more when there is no memory and this way
> the batches are not waiting in the queue unnecessarily) . Also may be you
> want to increase the batch.size further more, you will get even better
> throughput with more or less same latency (as there is no shortage of
> events in the test program).
>
> On Thu, Aug 13, 2015 at 1:13 PM Yuheng Du <yuheng.du.h...@gmail.com>
> wrote:
>
> > Yes there is. But if we are using ProducerPerformance test, it's
> configured
> > as giving input when running the test command. Do you write a java
> program
> > to test the latency? Thanks.
> >
> > On Thu, Aug 13, 2015 at 3:54 PM, Alvaro Gareppe <agare...@gmail.com>
> > wrote:
> >
> > > I'm using last one, but not using the ProducerPerformance, I created my
> > > own. but I think there is a producer.properties file in config folder
> in
> > > kafka.. is that configuration not for this tester ?
> > >
> > > On Thu, Aug 13, 2015 at 4:18 PM, Yuheng Du <yuheng.du.h...@gmail.com>
> > > wrote:
> > >
> > > > Thank you Alvaro,
> > > >
> > > > How to use sync producers? I am running the standard
> > ProducerPerformance
> > > > test from kafka to measure the latency of each message to send from
> > > > producer to broker only.
> > > > The command is like "bin/kafka-run-class.sh
> > > > org.apache.kafka.clients.tools.ProducerPerformance test7 50000000 100
> > -1
> > > > acks=1 bootstrap.servers=esv4-hcl198.grid.linkedin.com:9092
> > > > buffer.memory=67108864 batch.size=8196"
> > > >
> > > > For running producers, where should I put the producer.type=sync
> > > > configuration into? The config/server.properties? Also Does this mean
> > we
> > > > are using batch size of 1? Which version of Kafka are you using?
> > > > thanks.
> > > >
> > > > On Thu, Aug 13, 2015 at 3:01 PM, Alvaro Gareppe <agare...@gmail.com>
> > > > wrote:
> > > >
> > > > > Are you measuring latency as time between producer and consumer ?
> > > > >
> > > > > In that case, the ack shouldn't affect the latency, cause even
> tough
> > > your
> > > > > producer is not going to wait for the ack, the consumer will only
> get
> > > the
> > > > > message after its commited in the server.
> > > > >
> > > > > About latency my best result occur with sync producers, but the
> > > > throughput
> > > > > is much lower in that case.
> > > > >
> > > > > About not flushing to disk I'm pretty sure that it's not an option
> in
> > > > kafka
> > > > > (correct me if I'm wrong)
> > > > >
> > > > > Regards,
> > > > > Alvaro Gareppe
> > > > >
> > > > > On Thu, Aug 13, 2015 at 12:59 PM, Yuheng Du <
> > yuheng.du.h...@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > Also, the latency results show no major difference when using
> ack=0
> > > or
> > > > > > ack=1. Why is that?
> > > > > >
> > > > > > On Thu, Aug 13, 2015 at 11:51 AM, Yuheng Du <
> > > yuheng.du.h...@gmail.com>
> > > > > > wrote:
> > > > > >
> > > > > > > I am running an experiment where 92 producers is publishing
> data
> > > > into 6
> > > > > > > brokers and 10 consumer are reading online data simultaneously.
> > > > > > >
> > > > > > > How should I do to reduce the latency? Currently when I run the
> > > > > producer
> > > > > > > performance test the average latency is around 10s.
> > > > > > >
> > > > > > > Should I disable log.flush? How to do that? Thanks.
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Ing. Alvaro Gareppe
> > > > > agare...@gmail.com
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Ing. Alvaro Gareppe
> > > agare...@gmail.com
> > >
> >
>

Reply via email to