首頁(yè)技術(shù)文章正文

Kafka基準(zhǔn)測(cè)試的測(cè)試步驟有哪些?

更新時(shí)間:2021-09-28 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

基準(zhǔn)測(cè)試(benchmark testing)是一種測(cè)量和評(píng)估軟件性能指標(biāo)的活動(dòng)。我們可以通過(guò)基準(zhǔn)測(cè)試,了解到軟件、硬件的性能水平。主要測(cè)試負(fù)載的執(zhí)行時(shí)間、傳輸速度、吞吐量、資源占用率等。

1)基于1個(gè)分區(qū)1個(gè)副本的基準(zhǔn)測(cè)試:
1. 啟動(dòng)Kafka集群
2. 創(chuàng)建一個(gè)1個(gè)分區(qū)1個(gè)副本的topic: benchmark
3. 同時(shí)運(yùn)行生產(chǎn)者、消費(fèi)者基準(zhǔn)測(cè)試程序
4. 觀察結(jié)果

創(chuàng)建topic

bin/kafka-topics.sh --zookeeper node1.itcast.cn:2181 --create --topic benchmark --partitions 1 --replication-factor 1

2)生產(chǎn)消息基準(zhǔn)測(cè)試

在生產(chǎn)環(huán)境中,推薦使用生產(chǎn)5000W消息,這樣會(huì)性能數(shù)據(jù)會(huì)更準(zhǔn)確些。為了方便測(cè)試,課程上演示測(cè)試500W的消息作為基準(zhǔn)測(cè)試。

bin/kafka-producer-perf-test.sh --topic benchmark --num-records 5000000 
--throughput -1 --record-size 1000 --producer-props 
bootstrap.servers=node1.itcast.cn:9092,node2.itcast.cn:9092,node3.itcast.cn:9092 
acks=1
bin/kafka-producer-perf-test.sh  
--topic  topic的名字
--num-records 總共指定生產(chǎn)數(shù)據(jù)量(默認(rèn)5000W)
--throughput 指定吞吐量——限流(-1不指定)
--record-size    record數(shù)據(jù)大?。ㄗ止?jié))
--producer-props  bootstrap.servers=192.168.1.20:9092,192.168.1.21:9092,192.168.1.22:9092 acks=1  指定Kafka集群地址,ACK模式

測(cè)試結(jié)果:

1632825924313_基準(zhǔn)測(cè)試.png

3)消費(fèi)消息基準(zhǔn)測(cè)試

bin/kafka-consumer-perf-test.sh --broker-list 
node1.itcast.cn:9092,node2.itcast.cn:9092,node3.itcast.cn:9092 --topic benchmark 
--fetch-size 1048576 --messages 5000000
bin/kafka-consumer-perf-test.sh
--broker-list 指定kafka集群地址
--topic 
指定topic的名稱
--fetch-size 每次拉取的數(shù)據(jù)大小
--messages 總共要消費(fèi)的消息個(gè)數(shù)

1632825930851_12.png


4)基于3個(gè)分區(qū)1個(gè)副本的基準(zhǔn)測(cè)試
被測(cè)虛擬機(jī):

1632825938283_13.png
創(chuàng)建topic

bin/kafka-topics.sh --zookeeper node1.itcast.cn:2181 --create --topic benchmark
 --partitions 3 --replication-factor 1

5)生產(chǎn)消息基準(zhǔn)測(cè)試

bin/kafka-producer-perf-test.sh --topic benchmark --num-records 5000000 
--throughput -1 --record-size 1000 --producer-props 
bootstrap.servers=node1.itcast.cn:9092,node2.itcast.cn:9092,node3.itcast.cn:9092 
acks=1bin/kafka-consumer-perf-test.sh

測(cè)試結(jié)果:
1632825951863_14.png
1632825958811_14.5.png

還是一樣,因?yàn)樘摂M機(jī)的原因,多個(gè)分區(qū)反而消費(fèi)的效率也有所下降。

基于1個(gè)分區(qū)3個(gè)副本的基準(zhǔn)測(cè)試

創(chuàng)建topic

bin/kafka-topics.sh --zookeeper node1.itcast.cn:2181 --create --topic benchmark --partitions 
1 --replication-factor 3

6)生產(chǎn)消息基準(zhǔn)測(cè)試

bin/kafka-producer-perf-test.sh --topic benchmark --num-records 5000000 
--throughput -1 --record-size 1000 --producer-props 
bootstrap.servers=node1.itcast.cn:9092,node2.itcast.cn:9092,node3.itcast.cn:9092 
acks=1

測(cè)試結(jié)果:

1632825968850_15.png

同樣的配置,副本越多速度越慢。

7)消費(fèi)消息基準(zhǔn)測(cè)試

bin/kafka-consumer-perf-test.sh --broker-list 
node1.itcast.cn:9092,node2.itcast.cn:9092,node3.itcast.cn:9092 --topic benchmark 
--fetch-size 1048576 --messages 5000000

1632825975097_16.png






猜你喜歡:

Django如何給客戶端推送消息?App推送怎樣實(shí)現(xiàn)?

MySQL數(shù)據(jù)庫(kù)怎樣分區(qū)和分表?【數(shù)據(jù)分析面試題】

ZooKeeper在集群Master選舉中應(yīng)用介紹

Zookeeper分布式系統(tǒng)的集群架構(gòu)介紹

傳智教育python大數(shù)據(jù)開(kāi)發(fā)培訓(xùn)

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!