Kafka测试及性能调优详细总结 (2)

bin/kafka-producer-perf-test.sh --messages 500000 --message-size 512 --batch-size 1 --topic test-pati1-rep1  --threads 1 --broker-list 203.150.54.215:21204,203.150.54.216:21204,203.150.54.217:21204

b)批处理为5,线程数为4,复制因子为2

bin/kafka-producer-perf-test.sh --messages 50000 --message-size 512 --batch-size 5 --topic test-pati1-rep2 --threads 1 --broker-list 203.150.54.215:21204,203.150.54.216:21204,203.150.54.217:21204

c)批处理为10,线程数为4,复制因子为2,不压缩,sync

bin/kafka-producer-perf-test.sh --messages 50000 --message-size 512 --batch-size 10 --topic test-pati2-rep2 --threads 4 --compression-codec 0 --sync 1 --broker-list 203.150.54.215:21204,203.150.54.216:21204,203.150.54.217:21204

d)批处理为10,线程数为4,复制因子为2,gzip压缩,sync

bin/kafka-producer-perf-test.sh --messages 50000 --message-size 512 --batch-size 10 --topic test-pati2-rep2 --threads 4 --compression-codec 1 --sync 1 --broker-list 203.150.54.215:21204, 203.150.54.216:21204, 203.150.54.217:21204

说明:消息大小统一使用和业务场景中日志大小相近的512Bype,消息数为50w或200w条。
 
三、测试消费者吞吐率
测试consumer吞吐率
调整批处理数,线程数,partition数,复制因子,压缩等进行测试。
示例:

a)批处理为1,线程数为1,复制因子为1

bin/kafka-consumer-perf-test.sh --messages 500000 --message-size 512 --batch-size 1 --topic test-pati1-rep1  --threads 1 --zookeeper 203.150.54.215:2181

b)批处理为5,线程数为4,复制因子为2

bin/kafka-consumer-perf-test.sh --messages 50000 --message-size 512 --batch-size 5 --topic test-pati1-rep2 --threads 1  --zookeeper 203.150.54.215:2181

c)批处理为10,线程数为4,复制因子为2,不压缩,sync

bin/kafka-consumer-perf-test.sh --messages 50000 --message-size 512 --batch-size 10 --topic test-pati2-rep2 --threads 4 --compression-codec 0 --sync 1  --zookeeper 203.150.54.215:2181

d)批处理为10,线程数为4,复制因子为2,gzip压缩,sync

bin/kafka-consumer-perf-test.sh --messages 50000 --message-size 512 --batch-size 10 --topic test-pati2-rep2 --threads 4 --compression-codec 1 --sync 1  --zookeeper 203.150.54.215:2181

 

注:以上测试均使用python脚本多线程测试实现。

测试结果及分析

 

1、 生产者测试结果及分析

调整线程数,批处理数,复制因子等参考,对producer吞吐率进行测试。在测试时消息大小为512Byte,消息数为50w,结果如下:

   

复制因子

 

1

 

2

 

线程数

 

批处理

       

1

 

1

   

1.8598

 

0.5878

 

4

 

5

   

17.6594

 

7.2501

 

4

 

10

   

26.4221

 

13.0208

 
   

压/no

     

4

 

10

   

4.6855

 

1.9058

 

4

 

10

   

3.0945

 

1.4846

 

Producer吞吐率(MB/s)


调整sync模式,压缩方式得到吞吐率数据如表3.在本次测试中msg=512Byte,message=500000,batch_zie=10


结果分析:
1)kafka在批处理,多线程,不适用同步复制的情况下,吞吐率是比较高的,可以达26MB/s,消息数达17w条/s以上。
2)使用批处理或多线程对提升生产者吞吐率效果明显。
3)复制因子会对吞吐率产生较明显影响
   使用同步复制时,复制因子会对吞吐率产生较明显的影响。复制因子为2比因子为1(即无复制)时,吞吐率下降40%左右。


4)使用sync方式,性能有明显下降。
   使用Sync方式producer吞吐率会有明显下降
5)压缩与吞吐率
  使用Gzip及Snappy方式压缩,吞吐率反而有下降,原因待分析。而Snappy方式吞吐率高于gzip方式。
6)分区数与吞吐率
   分区数增加生产者吞吐率反而有所下降 
 
2、消费者结果及分析


结果分析:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwjxp.html