Kafka壓力測試


 

項目經驗Kafka壓力測試

1)Kafka壓測

Kafka官方自帶的腳本,對Kafka進行壓測。Kafka壓測時,可以查看到哪個地方出現了瓶頸(CPU,內存,網絡IO)。一般都是網絡IO達到瓶頸。 

kafka-consumer-perf-test.sh

kafka-producer-perf-test.sh

2)Kafka Producer壓力測試

1)在/opt/module/kafka/bin目錄下面有這兩個文件。我們來測試一下

[hadoop@hadoop102 kafka]$ bin/kafka-producer-perf-test.sh  --topic test --record-size 100 --num-records 100000 --throughput 1000 --producer-props bootstrap.servers=hadoop102:9092,hadoop103:9092,hadoop104:9092

說明:record-size是一條信息有多大,單位是字節。num-records是總共發送多少條信息。throughput 是每秒多少條信息。

2Kafka會打印下面的信息

5000 records sent, 999.4 records/sec (0.10 MB/sec), 1.9 ms avg latency, 254.0 max latency.

5002 records sent, 1000.4 records/sec (0.10 MB/sec), 0.7 ms avg latency, 12.0 max latency.

5001 records sent, 1000.0 records/sec (0.10 MB/sec), 0.8 ms avg latency, 4.0 max latency.

5000 records sent, 1000.0 records/sec (0.10 MB/sec), 0.7 ms avg latency, 3.0 max latency.

5000 records sent, 1000.0 records/sec (0.10 MB/sec), 0.8 ms avg latency, 5.0 max latency.

參數解析:本例中一共寫入10w條消息,每秒向Kafka寫入了0.10MB的數據,平均是1000消息/,每次寫入的平均延遲為0.8毫秒,最大的延遲為254毫秒。

3)Kafka Consumer壓力測試

Consumer的測試,如果這四個指標(IO,CPU,內存,網絡)都不能改變,考慮增加分區數來提升性能。

[hadoop@hadoop102 kafka]$ 

bin/kafka-consumer-perf-test.sh --zookeeper hadoop102:2181 --topic test --fetch-size 10000 --messages 10000000 --threads 1

參數說明:

--zookeeper 指定zookeeper的鏈接信息

--topic 指定topic的名稱

--fetch-size 指定每次fetch的數據的大小

--messages 總共要消費的消息個數

測試結果說明:

start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec

2019-02-19 20:29:07:566, 2019-02-19 20:29:12:170, 9.5368, 2.0714, 100010, 21722.4153

開始測試時間,測試結束數據,最大吞吐9.5368MB/s,平均每秒消費2.0714MB/s最大每秒消費100010條,平均每秒消費21722.4153條。

4.5.12 項目經驗之Kafka機器數量計算

Kafka機器數量(經驗公式)=2*(峰值生產速度*副本數/100+1

先要預估一天大概產生多少數據,然后用Kafka自帶的生產壓測(只測試Kafka的寫入速度,保證數據不積壓),計算出峰值生產速度。再根據設定的副本數,就能預估出需要部署Kafka的數量。

比如我們采用壓力測試測出寫入的速度是10M/s一台,峰值的業務數據的速度是50M/s。副本數為2

Kafka機器數量=2*(50*2/100+ 1=3台


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM