教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

Kafka基准测试怎样进行?

更新时间:2021年09月29日09时35分 来源:传智教育 浏览次数:

好口碑IT培训

基准测试(benchmark testing)是一种测量和评估软件性能指标的活动。我们可以通过基准测试,了解到软件、硬件的性能水平。主要测试负载的执行时间、传输速度、吞吐量、资源占用率等。

1)基于1个分区1个副本的基准测试:
1. 启动Kafka集群
2. 创建一个1个分区1个副本的topic: benchmark
3. 同时运行生产者、消费者基准测试程序
4. 观察结果

创建topic

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

2)生产消息基准测试

在生产环境中,推荐使用生产5000W消息,这样会性能数据会更准确些。为了方便测试,课程上演示测试500W的消息作为基准测试。

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 总共指定生产数据量(默认5000W)
--throughput 指定吞吐量——限流(-1不指定)
--record-size    record数据大小(字节)
--producer-props  bootstrap.servers=192.168.1.20:9092,192.168.1.21:9092,192.168.1.22:9092 acks=1  指定Kafka集群地址,ACK模式

测试结果:

1632825924313_基准测试.png

3)消费消息基准测试

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 每次拉取的数据大小
--messages 总共要消费的消息个数

1632825930851_12.png


4)基于3个分区1个副本的基准测试
被测虚拟机:

1632825938283_13.png
创建topic

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

5)生产消息基准测试

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

测试结果:
1632825951863_14.png
1632825958811_14.5.png

还是一样,因为虚拟机的原因,多个分区反而消费的效率也有所下降。

基于1个分区3个副本的基准测试

创建topic

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

6)生产消息基准测试

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

测试结果:

1632825968850_15.png

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

7)消费消息基准测试

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推送怎样实现?

MySQL数据库怎样分区和分表?【数据分析面试题】

ZooKeeper在集群Master选举中应用介绍

Zookeeper分布式系统的集群架构介绍

传智教育python大数据开发培训

0 分享到:
和我们在线交谈!