kafka線上真實環境實戰及調優進階系列
本套系列部落格從真實商業環境抽取案例進行總結和分享,並給出kafka商業應用的調優建議和叢集環境容量規劃等內容,請持續關注本套部落格。版權宣告:本套kafka調優系列版權歸作者(秦凱新)所有,禁止轉載,歡迎學習。
1. kafka生產者吞吐量測試指標
kafka-producer-perf-test :是kafka提供的測試Producer效能指令碼,通過指令碼,可以計算出Producer在一段時間內的平均延時和吞吐量。
1.1 kafka-producer-perf-test
在kafka安裝目錄下面執行如下命令,生產環境中儘量讓指令碼執行較長的時間,才會有意義:
bin/kafka-producer-perf-test.sh --topic test --num-records 500000 --record-size 200 --througthput -1 --producer-props bootstrap.servers=bd-master:9092,bd-slave1=9092,bd-slave3=9092 acks=1
1.2 測試結果分析如下:
500000 records sent ,41963 records/sec (8.00 MB/sec),2362.85 ms/avg latency ,3513.00 ms max latency ,2792ms 50h ,3144ms 95th ,3364 ms 99h,3503ms 99.9th
看到上面的結果肯定蒙了,看我細細講來: kafka 的平均吞吐量是8.00 MB/sec ,即佔用64Mb/s左右的頻寬,平均每一秒傳送41963條訊息。平均延時為2362.85 ms,最大延時為3513.00 ms,95%的訊息傳送需要3144ms,99%的訊息傳送需要3364ms,99.9%的訊息傳送需要3503ms。
2. kafka消費者吞吐量指標說明:
2.1 kafka-consumer-perfs
我們總共測試500萬條資料量 bin/kafka-consumer-perfs-test.sh --broker-list bd-master:9092,bd-slave1=9092,bd-slave3=9092 --message-size 200 --messages 500000 --topic test
2.2 得到如下結果:
2018-10-28 9:39:02 95.4188 92.2313 500271 484289 看到上面的結果肯定蒙了,看我細細講來: 該環境下,1s內總共消費了95.4188MB訊息,吞吐量為92.2313MB/s,也即736Mb/s。
3 結語
秦凱新 於深圳 2018-10-28