The second script is using the new producer which allows sending multiple
in-flight requests whereas the first script use the current (old) producer
which sends only one request at a time to a certain broker.

The new producer will be officially released in 0.8.2.

Guozhang


On Tue, Jul 8, 2014 at 2:22 PM, Chen Song <chen.song...@gmail.com> wrote:

> While testing kafka producer performance, I found 2 testing scripts.
>
> 1) performance testing script in kafka distribution
>
> bin/kafka-producer-perf-test.sh --broker-list localhost:9092 --messages
> 10000000 --topic test --threads 10 --message-size 100 --batch-size 10000
> --compression-codec 1
>
> 2) performance testing script mentioned in
>
>
> https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines
>
> bin/kafka-run-class.sh
> org.apache.kafka.clients.tools.ProducerPerformance test6 50000000 100
> -1 acks=1 bootstrap.servers=esv4-hcl198.grid.linkedin.com:9092
> buffer.memory=67108864 batch.size=8196
>
> based on org.apache.kafka.clients.producer.Producer.
>
>
> On my local testing environment,
>
> For 1), the loading is ~15M/s and 150,000 msgs/s for mesage size = 100, no
> matter how I adjust batch size and number of loading threads.
> For 2), it can load up to 90M/s and 1,000,000 records/s.
>
> I am wondering what makes these 2 implementations perform so differently?
>
> --
> Chen Song
>



-- 
-- Guozhang

Reply via email to