kafka吞吐量测试案例


领英公司参考连接:https://www.slideshare.net/JiangjieQin/producer-performance-tuning-for-apache-kafka-63147600?qid=84026ff8-243f-49a7-a4d0-69976cf317b7&v=&b=&from_search=9(温馨提示,需要VPN哟~)。

一、kafka-producer-perf-test.sh使用案例

1、测试kafka写入的吞吐量

我用的是kafka版本是2.3.0,领英可能用的是0.10.0,我使用我的版本按照它的方式操作,发现不行,于是它标红线的参数我没有使用。

[root@Hexindai-C11-71 ~]# nohup kafka-producer-perf-test.sh --num-records 100000000 --record-size 1000 --topic kafka01 --throughput 1000000 --producer-props bootstrap.servers=172.20.11.71:9092,172.20.11.72:9092,172.20.11.73:9092 > /export/servers/kafka/logs/kafka01.log &

相关参数说明:
—topic             
    指定Kafka集群的topic名称,本例为yinzhengjie-kafka


--num-records       
    
  总共需要发送的消息数,本例为100000000
    


--record-size      
     每个记录的字节数,本例为1000



--throughput       
     每秒钟发送的记录数,本例为20000
    


--producer-props    bootstrap.servers=172.20.11.71:9092,172.20.11.72:9092,172.20.11.73:9092        
    很显然是kafka集群的broker地址

2、计算生产者的吞吐量

[root@Hexindai-C11-71 ~]# tail -50f /export/servers/kafka/logs/kafka01.log  
46368 records sent, 9273.6 records/sec (8.84 MB/sec), 3704.6 ms avg latency, 4446.0 ms max latency.
62016 records sent, 12403.2 records/sec (11.83 MB/sec), 3171.3 ms avg latency, 4187.0 ms max latency.
82704 records sent, 16159.4 records/sec (15.41 MB/sec), 2014.9 ms avg latency, 3001.0 ms max latency.
73904 records sent, 14780.8 records/sec (14.10 MB/sec), 2329.7 ms avg latency, 3223.0 ms max latency.
69424 records sent, 13884.8 records/sec (13.24 MB/sec), 2857.4 ms avg latency, 3674.0 ms max latency.
96688 records sent, 18565.3 records/sec (17.71 MB/sec), 1883.7 ms avg latency, 3101.0 ms max latency.
145184 records sent, 29036.8 records/sec (27.69 MB/sec), 1248.2 ms avg latency, 1856.0 ms max latency.
204400 records sent, 40880.0 records/sec (38.99 MB/sec), 825.9 ms avg latency, 1118.0 ms max latency.
214736 records sent, 42912.9 records/sec (40.92 MB/sec), 755.2 ms avg latency, 989.0 ms max latency.
218320 records sent, 43664.0 records/sec (41.64 MB/sec), 747.7 ms avg latency, 850.0 ms max latency.
154080 records sent, 30816.0 records/sec (29.39 MB/sec), 1003.2 ms avg latency, 1424.0 ms max latency.
142928 records sent, 28585.6 records/sec (27.26 MB/sec), 1161.5 ms avg latency, 1427.0 ms max latency.
141360 records sent, 28272.0 records/sec (26.96 MB/sec), 1213.5 ms avg latency, 1740.0 ms max latency.
194160 records sent, 38832.0 records/sec (37.03 MB/sec), 855.0 ms avg latency, 1178.0 ms max latency.
184848 records sent, 36969.6 records/sec (35.26 MB/sec), 884.6 ms avg latency, 1045.0 ms max latency.
188256 records sent, 37651.2 records/sec (35.91 MB/sec), 872.1 ms avg latency, 1019.0 ms max latency.
196848 records sent, 39369.6 records/sec (37.55 MB/sec), 832.6 ms avg latency, 953.0 ms max latency.
183824 records sent, 36757.4 records/sec (35.05 MB/sec), 902.8 ms avg latency, 1023.0 ms max latency.
139456 records sent, 27891.2 records/sec (26.60 MB/sec), 1105.3 ms avg latency, 1682.0 ms max latency.
73920 records sent, 14769.2 records/sec (14.09 MB/sec), 2203.0 ms avg latency, 3348.0 ms max latency.
154576 records sent, 30915.2 records/sec (29.48 MB/sec), 1200.9 ms avg latency, 3296.0 ms max latency.
189632 records sent, 37926.4 records/sec (36.17 MB/sec), 881.1 ms avg latency, 1192.0 ms max latency.
205680 records sent, 41136.0 records/sec (39.23 MB/sec), 846.0 ms avg latency, 1112.0 ms max latency.
213856 records sent, 42771.2 records/sec (40.79 MB/sec), 816.4 ms avg latency, 1162.0 ms max latency.
185888 records sent, 37170.2 records/sec (35.45 MB/sec), 894.1 ms avg latency, 1337.0 ms max latency.
211072 records sent, 42214.4 records/sec (40.26 MB/sec), 772.0 ms avg latency, 943.0 ms max latency.
205264 records sent, 41052.8 records/sec (39.15 MB/sec), 795.8 ms avg latency, 900.0 ms max latency.
219488 records sent, 43897.6 records/sec (41.86 MB/sec), 755.4 ms avg latency, 888.0 ms max latency.
218960 records sent, 43792.0 records/sec (41.76 MB/sec), 743.0 ms avg latency, 958.0 ms max latency.
197680 records sent, 39536.0 records/sec (37.70 MB/sec), 830.8 ms avg latency, 920.0 ms max latency.
210512 records sent, 42102.4 records/sec (40.15 MB/sec), 774.8 ms avg latency, 896.0 ms max latency.
211360 records sent, 42272.0 records/sec (40.31 MB/sec), 784.8 ms avg latency, 891.0 ms max latency.
209472 records sent, 41894.4 records/sec (39.95 MB/sec), 786.4 ms avg latency, 1010.0 ms max latency.
226192 records sent, 45238.4 records/sec (43.14 MB/sec), 722.6 ms avg latency, 861.0 ms max latency.
222896 records sent, 44579.2 records/sec (42.51 MB/sec), 738.3 ms avg latency, 830.0 ms max latency.
209600 records sent, 41920.0 records/sec (39.98 MB/sec), 781.4 ms avg latency, 870.0 ms max latency.
210800 records sent, 42160.0 records/sec (40.21 MB/sec), 770.1 ms avg latency, 861.0 ms max latency.
214832 records sent, 42966.4 records/sec (40.98 MB/sec), 760.5 ms avg latency, 872.0 ms max latency.
224544 records sent, 44774.5 records/sec (42.70 MB/sec), 744.2 ms avg latency, 933.0 ms max latency.
194496 records sent, 38899.2 records/sec (37.10 MB/sec), 838.0 ms avg latency, 1130.0 ms max latency.
218704 records sent, 43740.8 records/sec (41.71 MB/sec), 754.5 ms avg latency, 883.0 ms max latency.
195056 records sent, 39003.4 records/sec (37.20 MB/sec), 841.2 ms avg latency, 1160.0 ms max latency.
212320 records sent, 42430.1 records/sec (40.46 MB/sec), 762.6 ms avg latency, 871.0 ms max latency.
207264 records sent, 41452.8 records/sec (39.53 MB/sec), 802.2 ms avg latency, 938.0 ms max latency.
204480 records sent, 40887.8 records/sec (38.99 MB/sec), 801.7 ms avg latency, 947.0 ms max latency.
202432 records sent, 40486.4 records/sec (38.61 MB/sec), 810.4 ms avg latency, 934.0 ms max latency.
.
207824 records sent, 41564.8 records/sec (39.64 MB/sec), 802.2 ms avg latency, 954.0 ms max latency.
202912 records sent, 40582.4 records/sec (38.70 MB/sec), 804.7 ms avg latency, 967.0 ms max latency.
202576 records sent, 40507.1 records/sec (38.63 MB/sec), 810.7 ms avg latency, 952.0 ms max latency.
219248 records sent, 39682.9 records/sec (37.84 MB/sec), 736.8 ms avg latency, 1400.0 ms max latency.
^C
[root@Hexindai-C11-71 ~]# 
[root@Hexindai-C11-71 ~]# tail -50f /export/servers/kafka/logs/kafka01.log #查看kafka写入日志
207824 records sent, 41564.8 records/sec (39.64 MB/sec), 802.2 ms avg latency, 954.0 ms max latency.

当你执行完kafka-producer-perf-test.sh 脚本时,会输出类似上面的一行,从上面一行我们可以得出一些消息
    1>.每秒平均向kafka写入了74.80 MB的数据(大概是:78433条消息,计算方式:74.8*1024*1024/1000);
    2>.每次写入的平均延迟为390.67毫秒;
    3>.最大延迟为6731.00毫秒;
    4>.87毫秒内占95%5>.158毫秒内占99%6>.275毫秒内占99.9%;

二、kafka-consumer-perf-test.sh 使用案例

1、测试kafka消费的吞吐量

[root@Hexindai-C11-71 ~]# nohup kafka-consumer-perf-test.sh --broker-list 172.20.11.71:9092  --topic kafka01 --messages 1000000 --fetch-size 1048576 --threads 10  > /export/servers/kafka/logs/kafka01-consumer.log &
[4] 29406
[root@Hexindai-C11-71 ~]#


相关参数说明:
--topic 
    指定topic的名称,本例为 yinzhengjie-kafka

--fetch-size 
    
  指定每次fetch的数据的大小,本例为1048576,也就是1M

--messages     
  总共要消费的消息个数,本例为1000000,100w

--topic
  指定消费的topic

--threads
  指定消费的线程数为10

2、计算消费者的吞吐量

[root@Hexindai-C11-71 ~]# tail -f /export/servers/kafka/logs/kafka01-consumer.log
start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec, rebalance.time.ms, fetch.time.ms, fetch.MB.sec, fetch.nMsg.sec
2019-08-16 10:52:46:494, 2019-08-16 10:52:58:544, 954.0787, 79.1767, 1000424, 83022.7386, 456, 11594, 82.2907, 86288.0800

当你执行完 kafka-consumer-perf-test.sh 脚本时,会输出类似于上面的一行,从上面一行我们可以得出一些消息
    1>.共消费了954.0787M的数据;
    2>.消费速度为79.1767M/s;
    3>.总共消费了1000424条消息;
    4>.每秒消费83022.7386条消息;

 

三、编写脚本案例

1、执行脚本

[root@Hexindai-C11-71 ~]# cat kafka01.sh
nohup kafka-consumer-perf-test.sh --broker-list 172.20.11.71:9092  --topic kafka01 --messages 1000000 --fetch-size 1048576 --threads 10  > /export/servers/kafka/logs/kafka01-consumer.log &

nohup kafka-producer-perf-test.sh --num-records 100000000 --record-size 1000 --topic kafka01 --throughput 1000000 --producer-props bootstrap.servers=172.20.11.71:9092,172.20.11.72:9092,172.20.11.73:9092 > /export/servers/kafka/logs/kafka01.log &
[root@Hexindai-C11-71 ~]# 

2、运行脚本时查看kafka manager的监控

 

3、查看我的kafka性能测试结果

生产端:
    总共需要发送的消息数:1亿条,每个记录的字节数是:1000字节,每秒钟发送的记录数是:1000000

消费端:
    模拟了10个消费者:进行消费

    指定每次fetch的数据的大小:1M
    总共要消费的消息个数:1亿条

生产端结论:
    1>.每秒平均向kafka写入了225.07 MB的数据;
    2>.每次写入的平均延迟为 129.81毫秒;
    3>.最大延迟为2422.00毫秒;

消费端结论:
    1>. 共消费了95367.4316M的数据;
    2>.消费速度为225.2047M/s;
    3>.总共消费了1亿条消息;
    4>.每秒消费236144.2369条消息;

 

 

 

 

https://www.cnblogs.com/yinzhengjie/p/9953212.html

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM