Kafka壓力測試(官方自帶)


1、Kafka壓測

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

一般都是網絡IO達到瓶頸。

kafka-consumer-perf-test.sh

kafka-producer-perf-test.sh

2、Kafka Producer壓力測試

在.../kafka/bin目錄下

[duoduo@hadoop100 kafka_2.11-2.4.0]$ bin/kafka-producer-perf-test.sh --topic test --record-size 100 --num-records 100000 --throughput -1 --producer-props bootstrap.servers=hadoop100:9092,hadoop102:9092,hadoop101:9092

說明:

  • record-size:一條信息有多大,單位字節
  • num-records:總共發送多少條信息
  • throughput:每秒多少條信息,設置成-1,表示不限流,可測生產者最大吞吐量

結果:

100000 records sent, 27495.188342 records/sec (2.62 MB/sec), 1461.75 ms avg latency, 2183.00 ms max latency, 1696 ms 50th, 2103 ms 95th, 2177 ms 99th, 2181 ms 99.9th.

解析:

  • 一共寫入10萬條消息
  • 吞吐量為2.62 MB/sec
  • 每次寫入的平均延遲為1461.75ms
  • 最大延遲2183.00 ms

3、Kafka Consumer 壓力測試

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

[duoduo@hadoop100 kafka_2.11-2.4.0]$ bin/kafka-consumer-perf-test.sh --broker-list hadoop100:9092 --topic test --fetch-size 10000 -messages 10000000 --threads 1

參數說明:

  • broker-list:節點地址
  • topic:指定topic名稱
  • fetch-size:指定每個fetch的數據大小
  • messages:總共要消費的消息個數

結果:

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

2020-06-27 13:17:57:490, 2020-06-27 13:18:11:751, 20.0272, 1.4043, 210000, 14725.4751, 1593235077858, -1593235063597, -0.0000, -0.0001

解釋:

  • 開始時間
  • 結束時間
  • 共消費數據:20.0272M
  • 吞吐量:1.4043MB/s
  • 共消費數據:210000條
  • 平均每秒消費:14725.4751條

4、Kafka機器數量計算

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

比如:峰值生產速度為50M/s,副本為2

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


免責聲明!

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



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