前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CKafka系列学习文章 - CKafka入门型配置压测报告(十五)

CKafka系列学习文章 - CKafka入门型配置压测报告(十五)

原创
作者头像
发哥说消息队列
修改2020-04-22 16:21:49
1K0
修改2020-04-22 16:21:49
举报

一、压测环境

CKafka实例: 规格:入门型、峰值带宽: 40 MB/s、磁盘容量: 300GB,

topic:4分区 3副本

压测服务器: 1台:1C 2G

二、压测脚本

生产者压测脚本:

代码语言:javascript
复制
./kafka-producer-perf-test.sh --topic ckafka-test1 --num-records 100000 --record-size 100000 --producer-props bootstrap.servers=10.1.3.90:9092 --throughput 2000

消费者压测脚本:

代码语言:javascript
复制
./kafka-consumer-perf-test.sh --messages 100000 --threads 4 --fetch-size 230 --broker-list bootstrap.servers=10.1.3.90:9092 --num-fetch-threads 6 --topic ckafka-test1

三、开始压测

生产者压测:

消费者压测(一定要保持topic中有足够的数据,可以一边生产,一边消费)

6个处理线程数

[root@dn1 bin]# ./kafka-consumer-perf-test.sh —messages 4000000 —threads 6 —fetch-size 230 —broker-list bootstrap.servers=10.1.3.90:9092 —num-fetch-threads 6 —topic ckafka-test1 start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec 2019-09-27 11:35:40:259, 2019-09-27 11:35:47:536, 436.7313, 60.0153, 4823, 662.7731

5个处理线程数

[root@dn1 bin]# ./kafka-consumer-perf-test.sh —messages 4000000 —threads 5 —fetch-size 230 —broker-list bootstrap.servers=10.1.3.90:9092 —num-fetch-threads 6 —topic ckafka-test1 start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec 2019-09-27 11:36:03:149, 2019-09-27 11:36:24:408, 874.0864, 41.1161, 9409, 442.5890

4个处理线程数

[root@dn1 bin]# ./kafka-consumer-perf-test.sh —messages 4000000 —threads 4 —fetch-size 230 —broker-list bootstrap.servers=10.1.3.90:9092 —num-fetch-threads 6 -opic ckafka-test1 start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec 2019-09-27 11:42:13:815, 2019-09-27 11:42:35:087, 873.8003, 41.0775, 9406, 442.1775

3个处理线程数

[root@dn1 bin]# ./kafka-consumer-perf-test.sh —messages 4000000 —threads 3 —fetch-size 230 —broker-list bootstrap.servers=10.1.3.90:9092 —num-fetch-threads 6 —topic ckafka-test1 start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec 2019-09-27 11:43:09:625, 2019-09-27 11:43:29:892, 873.8956, 43.1191, 9407, 464.1536

2个处理线程数

[root@dn1 bin]# ./kafka-consumer-perf-test.sh —messages 4000000 —threads 2 —fetch-size 230 —broker-list bootstrap.servers=10.1.3.90:9092 —num-fetch-threads 6 —topic ckafka-test1 start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec 2019-09-27 11:43:45:890, 2019-09-27 11:44:07:176, 874.1817, 41.0684, 9410, 442.0746

1个处理线程数

[root@dn1 bin]# ./kafka-consumer-perf-test.sh —messages 4000000 —threads 1 —fetch-size 230 —broker-list bootstrap.servers=10.1.3.90:9092 —num-fetch-threads 6 —topic ckafka-test1 start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec 2019-09-27 11:44:28:535, 2019-09-27 11:44:37:958, 437.1128, 46.3879, 4827, 512.2572

四、控制台监控数据

注释:Max、Min和Avg数值统计为当前折线图内所有点的最大值、最小值和平均值
注释:Max、Min和Avg数值统计为当前折线图内所有点的最大值、最小值和平均值

生产流量(单位:MB):用户生产者生成消息所产生的流量, 实例生产流量(不包含副本产生的流量),按照所选择的时间粒度统计求和。(注意,单位是兆字节,也就是MB) 消费流量(单位:MB): 客户环境里消费者实时的消费流量大小。这个指标跟消费消息数同步,没有消费者消费,那么这里也没流量。 实例消费流量(不包含副本产生的流量),按照所选择的时间粒度统计求和。 生产条数: 用户生产者生成的消息条数 消费条数: 客户环境里消费者实时的消费条数。如果一直是0,那么说明没有消费者或者是消费者没有在消费消息 已占用磁盘容量(单位:MB):购买CKafka实例(磁盘容量: 300GB),已占用的磁盘容量 落盘消息条数:存到磁盘的消息条数 生产峰值带宽:生产者是比较平滑的,粒度都是一分种,就是一分种的60秒,每一秒的流量都差不多。 磁盘使用百分比:消费是一个阶段性的,跟客户每次拉取的消息条数有关,统计的是一分种中一秒的最大值,就是这一秒有多少消费者来拉,这一秒拉了多少次,拉取一次,可能需要消费一段时间。统计的也是这一分种内最大的那一秒的流量。 实例连接数:连接实例的数量

五、压测数据和监控解读

生产者压测:

./kafka-producer-perf-test.sh —topic ckafka-test1 ### topic名称,本例为ckafka-test1 —num-records 100000 ### 总共需要发送的消息数,本例为100000 —record-size 100000 ### 每个记录的字节数,本例为100000 —producer-props bootstrap.servers=10.1.3.90:9092 ### ckafka的配置信息,本例只指定了ckafka的链接信息 —throuput 2000 ### 每秒钟发送的记录数,本例为2000

压测结果

可以看到本例中,每秒平均向ckafka发送了1364条消息,256.3条/s、24.45MB/s,每次写入的平均延迟为240.5毫秒,最大的延迟为4176.9毫秒

消费者压测

./kafka-consumer-perf-test.sh —messages 4000000 ### 总共要消费的消息个数,本例为4000000,400万 —threads 6 ###处理线程数,本例为6 —fetch-size 230 ### 指定每次fetch的数据的大小,本例为230k —broker-list bootstrap.servers=10.1.3.90:9092 ### ckafka的配置信息,本例只指定了ckafka的链接信息 —num-fetch-threads 6 ###取消息的线程数,本例为6 —topic ckafka-test1 ### topic名称,本例为ckafka-test1

压测结果

start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec 2019-09-27 11:35:40:259, 2019-09-27 11:35:47:536, 436.7313, 60.0153, 4823, 662.7731 可以看到本例中,开始时间:2019-09-27 11:35:40:259,结束时间:2019-09-27 11:35:47:536, 总共消费了436.7313M的数据,每秒为60.0153M, 总共消费了4823条消息,每秒为662.7731条。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、压测环境
  • 二、压测脚本
    • 生产者压测脚本:
    • 三、开始压测
      • 生产者压测:
        • 消费者压测(一定要保持topic中有足够的数据,可以一边生产,一边消费)
          • 6个处理线程数
            • 5个处理线程数
              • 4个处理线程数
                • 3个处理线程数
                  • 2个处理线程数
                    • 1个处理线程数
                    • 四、控制台监控数据
                    • 五、压测数据和监控解读
                      • 生产者压测:
                        • 压测结果
                          • 消费者压测
                            • 压测结果
                            相关产品与服务
                            消息队列 CKafka 版
                            消息队列 CKafka 版(TDMQ for CKafka)是一个分布式、高吞吐量、高可扩展性的消息系统,100%兼容开源 Kafka API 2.4、2.8、3.2 版本。CKafka 基于发布/订阅模式,通过消息解耦,使生产者和消费者异步交互,无需彼此等待。CKafka 具有高可用、数据压缩、同时支持离线和实时数据处理等优点,适用于日志压缩收集、监控数据聚合、流式数据集成等场景。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档