文档首页 > > 性能白皮书>

测试步骤

测试步骤

分享
更新时间:2021/03/16 GMT+08:00

测试以下四种场景下,客户端消息生产速率和服务端CPU消耗。

  • 测试场景一(批处理大小):相同的Kafka专享版实例和Topic,不同的batch.size
  • 测试场景二(是否跨AZ生产):相同的Kafka专享版实例和Topic,生产客户端和服务端在不同的AZ中
  • 测试场景三(副本数):相同的Kafka专享版实例,不同的Topic副本数
  • 测试场景四(同步/异步复制):相同的Kafka专享版实例,不同复制机制的Topic
表1 测试参数

分区数

副本数

是否同步复制

batch.size

是否跨AZ生产

1

1

1KB

1

1

16KB

1

1

1KB

1

3

1KB

1

3

1KB

测试脚本如下:

./kafka-producer-perf-test.sh --producer-props bootstrap.servers=${连接地址} acks=1 batch.size=${batch.size} linger.ms=0 --topic ${Topic名称} --num-records ${num-records} --record-size 1024 --throughput -1
  • bootstrap.servers:购买Kafka专享版实例中获取的Kafka专享版实例的地址。
  • acks:消息主从同步策略,acks=1表示异步复制消息,acks=-1表示同步复制消息。
  • batch.size:每次批量发送消息的大小(单位为字节)。
  • linger.ms:两次发送时间间隔。
  • topic:创建Topic中设置的Topic名称。
  • num-records:总共需要发送的消息数。
  • record-size:每条消息的大小。
  • throughput:每秒发送的消息数。

测试场景一:批处理大小

  1. 登录客户端服务器,进入“kafka_2.11-2.3.0/bin”目录下,执行以下脚本。

    batch.size=1KB,执行脚本如下:
    ./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.7:9092,192.168.0.215:9092,192.168.0.110:9092 acks=1 batch.size=1024 linger.ms=0 --topic topic-01 --num-records 8000000 --record-size 1024 --throughput -1

    执行结果如下:

    8000000 records sent, 11575.748806 records/sec (11.30 MB/sec), 2605.63 ms avg latency, 4944.00 ms max latency, 2521 ms 50th, 3013 ms 95th, 4106 ms 99th, 4846 ms 99.9th.

    客户端消息生产速率=11575

    batch.size=16KB,执行脚本如下:

    ./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.7:9092,192.168.0.215:9092,192.168.0.110:9092 acks=1 batch.size=16384 linger.ms=0 --topic topic-01 --num-records 100000000 --record-size 1024 --throughput -1

    执行结果如下:

    100000000 records sent, 119921.043985 records/sec (117.11 MB/sec), 256.03 ms avg latency, 1122.00 ms max latency, 247 ms 50th, 299 ms 95th, 464 ms 99th, 801 ms 99.9th.

    客户端消息生产速率=119921

  2. 登录Kafka专享版实例控制台,在测试实例所在行,选择“更多 > 查看监控数据”,跳转到云监控界面。
  3. 在“节点”页签,查看服务端leader节点的CPU使用率。

    图1 CPU使用率(batch.size=1KB)

    CPU消耗=56.20%

    图2 CPU使用率(batch.size=16KB)

    CPU消耗=58.10%

测试场景二:是否跨AZ生产

  1. 登录客户端服务器,进入“kafka_2.11-2.3.0/bin”目录下,执行以下脚本。

    客户端服务器和实例在相同的AZ中,执行脚本如下:

    ./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.7:9092,192.168.0.215:9092,192.168.0.110:9092 acks=1 batch.size=1024 linger.ms=0 --topic topic-01 --num-records 8000000 --record-size 1024 --throughput -1

    执行结果如下:

    8000000 records sent, 11575.748806 records/sec (11.30 MB/sec), 2605.63 ms avg latency, 4944.00 ms max latency, 2521 ms 50th, 3013 ms 95th, 4106 ms 99th, 4846 ms 99.9th.

    客户端消息生产速率=11575

    客户端服务器和实例在不同的AZ中,执行脚本如下:

    ./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.7:9092,192.168.0.215:9092,192.168.0.110:9092 acks=1 batch.size=1024 linger.ms=0 --topic topic-01 --num-records 2000000 --record-size 1024 --throughput -1

    执行结果如下:

    2000000 records sent, 3411.374204 records/sec (3.33 MB/sec), 8790.43 ms avg latency, 10780.00 ms max latency, 8756 ms 50th, 9703 ms 95th, 10273 ms 99th, 10606 ms 99.9th.

    客户端消息生产速率=3411

  2. 登录Kafka专享版实例控制台,在测试实例所在行,选择“更多 > 查看监控数据”,跳转到云监控界面。
  3. 在“节点”页签,查看服务端leader节点的CPU使用率。

    图3 CPU使用率(客户端服务器和实例在相同的AZ中)

    CPU消耗=56.20%

    图4 CPU使用率(客户端服务器和实例在不同的AZ中)

    CPU消耗=19.40%

测试场景三:副本数

  1. 登录客户端服务器,进入“kafka_2.11-2.3.0/bin”目录下,执行以下脚本。

    1副本,执行脚本如下:

    ./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.7:9092,192.168.0.215:9092,192.168.0.110:9092 acks=1 batch.size=1024 linger.ms=0 --topic topic-01 --num-records 8000000 --record-size 1024 --throughput -1

    执行结果如下:

    8000000 records sent, 11575.748806 records/sec (11.30 MB/sec), 2605.63 ms avg latency, 4944.00 ms max latency, 2521 ms 50th, 3013 ms 95th, 4106 ms 99th, 4846 ms 99.9th.

    客户端消息生产速率=11575

    3副本,执行脚本如下:

    ./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.7:9092,192.168.0.215:9092,192.168.0.110:9092 acks=1 batch.size=1024 linger.ms=0 --topic topic-02 --num-records 4000000 --record-size 1024 --throughput -1

    执行结果如下:

    4000000 records sent, 7512.484811 records/sec (7.34 MB/sec), 4006.26 ms avg latency, 6884.00 ms max latency, 3898 ms 50th, 4620 ms 95th, 5873 ms 99th, 6532 ms 99.9th.

    客户端消息生产速率=7512

  2. 登录Kafka专享版实例控制台,在测试实例所在行,选择“更多 > 查看监控数据”,跳转到云监控界面。
  3. 在“节点”页签,查看服务端leader节点的CPU使用率。

    图5 CPU使用率(1副本)

    CPU消耗=56.20%

    图6 CPU使用率(3副本)

    CPU消耗=80%

测试场景四:同步/异步复制

  1. 登录客户端服务器,进入“kafka_2.11-2.3.0/bin”目录下,执行以下脚本。

    异步复制,执行脚本如下:

    ./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.7:9092,192.168.0.215:9092,192.168.0.110:9092 acks=1 batch.size=1024 linger.ms=0 --topic topic-02 --num-records 4000000 --record-size 1024 --throughput -1

    执行结果如下:

    4000000 records sent, 7512.484811 records/sec (7.34 MB/sec), 4006.26 ms avg latency, 6884.00 ms max latency, 3898 ms 50th, 4620 ms 95th, 5873 ms 99th, 6532 ms 99.9th.

    客户端消息生产速率=7512

    同步复制,执行脚本如下:

    ./kafka-producer-perf-test.sh --producer-props bootstrap.servers=192.168.0.7:9092,192.168.0.215:9092,192.168.0.110:9092 acks=-1 batch.size=1024 linger.ms=0 --topic topic-03 --num-records 1000000 --record-size 1024 --throughput -1

    执行结果如下:

    1000000 records sent, 2020.663303 records/sec (1.97 MB/sec), 14701.72 ms avg latency, 18153.00 ms max latency, 15061 ms 50th, 17400 ms 95th, 18098 ms 99th, 18145 ms 99.9th.

    客户端消息生产速率=2020

  2. 登录Kafka专享版实例控制台,在测试实例所在行,选择“更多 > 查看监控数据”,跳转到云监控界面。
  3. 在“节点”页面,查看服务端leader节点的CPU使用率。

    图7 CPU使用率(异步复制)

    CPU消耗=80%

    图8 CPU使用率(同步复制)

    CPU消耗=46.70%

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区论坛频道来与我们联系探讨

智能客服提问云社区提问