kafka基准测试

目录

4. Kafka基准测试

4.1 基准测试

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

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

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


Kafka入门及进阶汇总

4. Kafka基准测试


4.1 基准测试

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

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

测试步骤:
1.启动Kafka集群
2.创建一个1个分区1个副本的topic: benchmark
3.同时运行生产者、消费者基准测试程序
4.观察结果
4.1.1.1 创建topic
bin/kafka-topics.sh --zookeeper node1.itcast.cn:2181 --create --topic benchmark --partitions 1 --replication-factor 1
4.1.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


测试结果:

吞吐量

93092.533979 records/sec

每秒9.3W条记录

吞吐速率

(88.78 MB/sec)

每秒约89MB数据

平均延迟时间

346.62 ms avg latency

最大延迟时间

1003.00 ms max latency


4.1.1.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

data.consumed.in.MB

共计消费的数据

4768.3716MB

MB.sec

每秒消费的数量

445.6006

每秒445MB

data.consumed.in.nMsg

共计消费的数量

5000000

nMsg.sec

每秒的数量

467246.0518

每秒46.7W条

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

被测虚拟机:

node1.itcast.cn

node2.itcast.cn

node3.itcast.cn

inter i5 8th 8G内存

inter i5 8th 4G内存

inter i5 8th 4G内存


4.1.2.1 创建topic
bin/kafka-topics.sh --zookeeper node1.itcast.cn:2181 --create --topic benchmark --partitions 3 --replication-factor 1
4.1.2.2 生产消息基准测试
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

测试结果:

指标

3分区1个副本

单分区单副本

吞吐量

68755.930199 records/sec

93092.533979 records/sec

每秒9.3W条记录

吞吐速率

65.57 MB/sec

(88.78 MB/sec)

每秒约89MB数据

平均延迟时间

469.37 ms avg latency

346.62 ms avg latency

最大延迟时间

2274.00 ms max latency

1003.00 ms max latency


在虚拟机上,因为都是共享笔记本上的CPU、内存、网络,所以分区越多,反而效率越低。但如果是真实的服务器,分区多效率是会有明显提升的。
4.1.2.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

指标

单分区3个副本

单分区单副本

data.consumed.in.MB

共计消费的数据

4768.3716MB

4768.3716MB

MB.sec

每秒消费的数量

265.8844MB

445.6006

每秒445MB

data.consumed.in.nMsg

共计消费的数量

5000000

5000000

nMsg.sec

每秒的数量

278800.0446

每秒27.8W

467246.0518

每秒46.7W

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


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

4.1.3.1 创建topic
bin/kafka-topics.sh --zookeeper node1.itcast.cn:2181 --create --topic benchmark --partitions 1 --replication-factor 3
4.1.3.2 生产消息基准测试
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

测试结果:

指标

单分区3个副本

单分区单副本

吞吐量

29899.477955 records/sec

93092.533979 records/sec

每秒9.3W条记录

吞吐速率

28.51 MB/sec

(88.78 MB/sec)

每秒约89MB数据

平均延迟时间

1088.43 ms avg latency

346.62 ms avg latency

最大延迟时间

2416.00 ms max latency

1003.00 ms max latency

同样的配置,副本越多速度越慢。
4.1.3.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

指标

单分区3个副本

单分区单副本

data.consumed.in.MB

共计消费的数据

4768.3716MB

4768.3716MB

MB.sec

每秒消费的数量

265.8844MB

每秒265MB

445.6006

每秒445MB

data.consumed.in.nMsg

共计消费的数量

5000000

5000000

nMsg.sec

每秒的数量

278800.0446

每秒27.8W

467246.0518

每秒46.7W

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值