Does the result change with just 1 partition?

Thanks,

Jun


On Wed, Jan 29, 2014 at 4:06 PM, Michael Popov <mpo...@microsoft.com> wrote:

> Hi,
>
> We need a reliable low-latency message queue that can scale. Kafka looks
> like a right system for this role.
>
> I am running performance tests on multiple platforms: Linux and Windows.
> For test purposes I create topics with 2 replicas and multiple partitions.
> In all deployments running test producers that wait for both replicas' acks
> practically kills Kafka throughput. For example, on the following
> deployment on Linux machines: 2 Kafka brokers, 1 Zookeeper node, 4 client
> hosts to create load, 4 topics with 10 partitions each and 2 replicas
>
> -          running tests with "--request-num-acks 1" produces ~3,600
> msgs/sec
>
> -          running tests with "--request-num-acks -1" produces ~348
> msgs/sec
>
>
> Here is output of one of the four concurrent processes:
>
> [User@Client2 kafka_2.8.0-0.8.0]$  bin/kafka-producer-perf-test.sh
> --broker-list 10.0.0.8:9092,10.0.0.10:9092 --compression-codec 0
> --message-size 1024 --request-num-acks -1 --sync --messages 100000 -threads
> 10 --show-detailed-stats --reporting-interval 1000 --topics c12 | grep -v
> "at "
> start.time, end.time, compression, message.size, batch.size,
> total.data.sent.in.MB, MB.sec, total.data.sent.in.nMsg, nMsg.sec
> [2014-01-29 23:21:16,720] WARN Property reconnect.interval is not valid
> (kafka.utils.VerifiableProperties)
> [2014-01-29 23:21:16,825] WARN Property reconnect.interval is not valid
> (kafka.utils.VerifiableProperties)
> [2014-01-29 23:21:16,830] WARN Property reconnect.interval is not valid
> (kafka.utils.VerifiableProperties)
> [2014-01-29 23:21:16,831] WARN Property reconnect.interval is not valid
> (kafka.utils.VerifiableProperties)
> [2014-01-29 23:21:16,839] WARN Property reconnect.interval is not valid
> (kafka.utils.VerifiableProperties)
> [2014-01-29 23:21:16,841] WARN Property reconnect.interval is not valid
> (kafka.utils.VerifiableProperties)
> [2014-01-29 23:21:16,847] WARN Property reconnect.interval is not valid
> (kafka.utils.VerifiableProperties)
> [2014-01-29 23:21:16,858] WARN Property reconnect.interval is not valid
> (kafka.utils.VerifiableProperties)
> [2014-01-29 23:21:16,862] WARN Property reconnect.interval is not valid
> (kafka.utils.VerifiableProperties)
> [2014-01-29 23:21:16,867] WARN Property reconnect.interval is not valid
> (kafka.utils.VerifiableProperties)
> [2014-01-29 23:32:03,830] WARN Produce request with correlation id 11467
> failed due to [c12,2]: kafka.common.RequestTimedOutException
> (kafka.producer.async.DefaultEventHandler)
> [2014-01-29 23:32:03,831] WARN Produce request with correlation id 11859
> failed due to [c12,8]: kafka.common.RequestTimedOutException
> (kafka.producer.async.DefaultEventHandler)
> [2014-01-29 23:32:03,831] WARN Failed to send producer request with
> correlation id 11819 to broker 0 with data for partitions [c12,8]
> (kafka.producer.async.DefaultEventHandler) java.net.SocketTimeoutException
> [2014-01-29 23:32:03,834] WARN Failed to send producer request with
> correlation id 11315 to broker 0 with data for partitions [c12,6]
> (kafka.producer.async.DefaultEventHandler) java.net.SocketTimeoutException
> [2014-01-29 23:32:03,834] WARN Failed to send producer request with
> correlation id 11191 to broker 0 with data for partitions [c12,4]
> (kafka.producer.async.DefaultEventHandler) java.net.SocketTimeoutException
> [2014-01-29 23:32:03,834] WARN Failed to send producer request with
> correlation id 11791 to broker 0 with data for partitions [c12,4]
> (kafka.producer.async.DefaultEventHandler) java.net.SocketTimeoutException
> [2014-01-29 23:32:03,834] WARN Failed to send producer request with
> correlation id 11395 to broker 0 with data for partitions [c12,6]
> (kafka.producer.async.DefaultEventHandler) java.net.SocketTimeoutException
> [2014-01-29 23:32:03,834] WARN Failed to send producer request with
> correlation id 11631 to broker 0 with data for partitions [c12,4]
> (kafka.producer.async.DefaultEventHandler) java.net.SocketTimeoutException
> [2014-01-29 23:32:03,834] WARN Failed to send producer request with
> correlation id 10563 to broker 0 with data for partitions [c12,0]
> (kafka.producer.async.DefaultEventHandler) java.net.SocketTimeoutException
> [2014-01-29 23:32:03,834] WARN Failed to send producer request with
> correlation id 10907 to broker 0 with data for partitions [c12,2]
> (kafka.producer.async.DefaultEventHandler) java.net.SocketTimeoutException
> 2014-01-29 23:21:16:562, 2014-01-29 23:40:15:886, 0, 1024, 200, 97.66,
> 0.0857, 100000, 87.7713
>
> The test result is consistent and reproducible in all deployments: numbers
> can vary but changing acks setting consistently reduces Kafka throughput
> 4-10 times.
>
> Is it expected system behavior? Any tuning options to resolve the problem?
>
> Thank you,
> Michael Popov
>
>

Reply via email to