分布式消息服务KAFKA版-测试Kafka生产速率和CPU消耗:测试步骤
测试步骤
测试场景一:批处理大小
- 登录客户端服务器,进入“kafka_2.12-2.7.2/bin”目录下,执行以下脚本。
batch.size=1KB,执行脚本如下:
./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.69:9092,192.168.0.42:9092,192.168.0.66:9092 acks=1 batch.size=1024 linger.ms=0 --topic Topic-01 --num-records 8000000 --record-size 1024 --throughput 102400
执行结果如下:
8000000 records sent, 34128.673632 records/sec (33.33 MB/sec), 879.91 ms avg latency, 4102.00 ms max latency, 697 ms 50th, 2524 ms 95th, 2888 ms 99th, 4012 ms 99.9th.
客户端消息生产速率=34128
batch.size=16KB,执行脚本如下:
./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.69:9092,192.168.0.42:9092,192.168.0.66:9092 acks=1 batch.size=16384 linger.ms=0 --topic Topic-01 --num-records 100000000 --record-size 1024 --throughput 102400
执行结果如下:
100000000 records sent, 102399.318430 records/sec (100.00 MB/sec), 4.72 ms avg latency, 914.00 ms max latency, 1 ms 50th, 5 ms 95th, 162 ms 99th, 398 ms 99.9th.
客户端消息生产速率=102399
- 登录Kafka实例控制台,单击测试实例名称,进入实例详情页。
- 在左侧导航栏单击“监控”,进入监控页面。
- 在“节点”页签,查看服务端节点的CPU使用率。
图1 broker-0的CPU使用率(batch.size=1KB)
CPU消耗=58.10%
图2 broker-0的CPU使用率(batch.size=16KB)
CPU消耗=24.10%
图3 broker-1的CPU使用率(batch.size=1KB)
CPU消耗=56.70%
图4 broker-1的CPU使用率(batch.size=16KB)
CPU消耗=25%
图5 broker-2的CPU使用率(batch.size=1KB)
CPU消耗=53.30%
图6 broker-2的CPU使用率(batch.size=16KB)
CPU消耗=23.30%
测试场景二:是否跨AZ生产
- 登录客户端服务器,进入“kafka_2.12-2.7.2/bin”目录下,执行以下脚本。
客户端服务器和实例在相同的AZ中,执行脚本如下:
./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.69:9092,192.168.0.42:9092,192.168.0.66:9092 acks=1 batch.size=1024 linger.ms=0 --topic Topic-01 --num-records 8000000 --record-size 1024 --throughput 102400
执行结果如下:
8000000 records sent, 34128.673632 records/sec (33.33 MB/sec), 879.91 ms avg latency, 4102.00 ms max latency, 697 ms 50th, 2524 ms 95th, 2888 ms 99th, 4012 ms 99.9th.
客户端消息生产速率=34128
客户端服务器和实例在不同的AZ中,执行脚本如下:
./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.69:9092,192.168.0.42:9092,192.168.0.66:9092 acks=1 batch.size=1024 linger.ms=0 --topic Topic-01 --num-records 4000000 --record-size 1024 --throughput 102400
执行结果如下:
4000000 records sent, 8523.042044 records/sec (8.32 MB/sec), 3506.20 ms avg latency, 11883.00 ms max latency, 1817 ms 50th, 10621 ms 95th, 11177 ms 99th, 11860 ms 99.9th.
客户端消息生产速率=8523
- 登录Kafka实例控制台,单击测试实例名称,进入实例详情页。
- 在左侧导航栏单击“监控”,进入监控页面。
- 在“节点”页签,查看服务端节点的CPU使用率。
图7 broker-0的CPU使用率(客户端服务器和实例在相同的AZ中)
CPU消耗=58.10%
图8 broker-0的CPU使用率(客户端服务器和实例在不同的AZ中)
CPU消耗=17.20%
图9 broker-1的CPU使用率(客户端服务器和实例在相同的AZ中)
CPU消耗=56.70%
图10 broker-1的CPU使用率(客户端服务器和实例在不同的AZ中)
CPU消耗=16.70%
图11 broker-2的CPU使用率(客户端服务器和实例在相同的AZ中)
CPU消耗=53.30%
图12 broker-2的CPU使用率(客户端服务器和实例在不同的AZ中)
CPU消耗=18.80%
测试场景三:副本数
- 登录客户端服务器,进入“kafka_2.12-2.7.2/bin”目录下,执行以下脚本。
1副本,执行脚本如下:
./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.69:9092,192.168.0.42:9092,192.168.0.66:9092 acks=1 batch.size=1024 linger.ms=0 --topic Topic-01 --num-records 8000000 --record-size 1024 --throughput 102400
执行结果如下:
8000000 records sent, 34128.673632 records/sec (33.33 MB/sec), 879.91 ms avg latency, 4102.00 ms max latency, 697 ms 50th, 2524 ms 95th, 2888 ms 99th, 4012 ms 99.9th.
客户端消息生产速率=34128
3副本,执行脚本如下:
./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.69:9092,192.168.0.42:9092,192.168.0.66:9092 acks=1 batch.size=1024 linger.ms=0 --topic Topic-02 --num-records 4000000 --record-size 1024 --throughput 102400
执行结果如下:
4000000 records sent, 14468.325219 records/sec (14.13 MB/sec), 2069.99 ms avg latency, 7911.00 ms max latency, 846 ms 50th, 6190 ms 95th, 6935 ms 99th, 7879 ms 99.9th.
客户端消息生产速率=14468
- 登录Kafka实例控制台,单击测试实例名称,进入实例详情页。
- 在左侧导航栏单击“监控”,进入监控页面。
- 在“节点”页签,查看服务端节点的CPU使用率。
图13 broker-0的CPU使用率(1副本)
CPU消耗=58.10%
图14 broker-0的CPU使用率(3副本)
CPU消耗=86.70%
图15 broker-1的CPU使用率(1副本)
CPU消耗=56.70%
图16 broker-1的CPU使用率(3副本)
CPU消耗=80.60%
图17 broker-2的CPU使用率(1副本)
CPU消耗=53.30%
图18 broker-2的CPU使用率(3副本)
CPU消耗=86.20%
测试场景四:同步/异步复制
- 登录客户端服务器,进入“kafka_2.12-2.7.2/bin”目录下,执行以下脚本。
异步复制,执行脚本如下:
./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.69:9092,192.168.0.42:9092,192.168.0.66:9092 acks=1 batch.size=1024 linger.ms=0 --topic Topic-02 --num-records 4000000 --record-size 1024 --throughput 102400
执行结果如下:
4000000 records sent, 14468.325219 records/sec (14.13 MB/sec), 2069.99 ms avg latency, 7911.00 ms max latency, 846 ms 50th, 6190 ms 95th, 6935 ms 99th, 7879 ms 99.9th.
客户端消息生产速率=14468
同步复制,执行脚本如下:
./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.69:9092,192.168.0.42:9092,192.168.0.66:9092 acks=-1 batch.size=1024 linger.ms=0 --topic Topic-03 --num-records 1000000 --record-size 1024 --throughput 102400
执行结果如下:
1000000 records sent, 3981.937930 records/sec (3.89 MB/sec), 7356.98 ms avg latency, 19013.00 ms max latency, 6423 ms 50th, 14381 ms 95th, 18460 ms 99th, 18975 ms 99.9th.
客户端消息生产速率=3981
- 登录Kafka实例控制台,单击测试实例名称,进入实例详情页。
- 在左侧导航栏单击“监控”,进入监控页面。
- 在“节点”页面,查看服务端节点的CPU使用率。
图19 broker-0的CPU使用率(异步复制)
CPU消耗=86.70%
图20 broker-0的CPU使用率(同步复制)
CPU消耗=60%
图21 broker-1的CPU使用率(异步复制)
CPU消耗=80.60%
图22 broker-1的CPU使用率(同步复制)
CPU消耗=55.20%
图23 broker-2的CPU使用率(异步复制)
CPU消耗=86.20%
图24 broker-2的CPU使用率(同步复制)
CPU消耗=50%
- kafka是什么_kafka介绍_分布式消息服务Kafka版
- 分布式消息服务Kafka版与分布式消息服务RocketMQ版的区别_Kafka与RocketMQ对比_Kafka与RocketMQ差异
- 分布式消息服务有哪些_分布式消息服务哪个好_分布式消息-华为云
- Kafka架构_Kafka如何实现负载均衡_Kafka数据存储方式-华为云
- 分布式消息系统Kafka_分布式消息系统_分布式消息kafka可以解决什么问题-华为云
- 分布式消息中间件实战_分布式消息实战_分布式消息-华为云
- 分布式消息服务优势_分布式消息服务_消息队列-华为云
- Kafka与其他消息队列的对比_什么是Kafka_分布式消息系统-华为云
- MapReduce服务_什么是Kafka_如何使用Kafka
- 分布式消息中间件的作用_分布式消息中间件_分布式消息-华为云