1.0与1.1版本Controller性能压测

背景

     因为1.1对Controller进行了重构,看官方介绍性能有很大提升,正好觉得当前1.0版本Controller处理有些慢,简单测试了下性能差异。

压测环境:

Broker机器:5台
Broker JVM配置:-Xms2g -Xmx4g -Xmn1280m -XX:+UseConcMarkSweepGC
日志存储目录:2个目录
Kafka版本:1.0、1.1
副本数:3
每个topic分区数:100

评估指标

    官方并没有提供Controller性能相关的metric,不过根据Controller的职责和网上的资料,通常根据Broker的启停耗时和Controller容灾切换时间来判断Controller的性能,耗时越长说明当前Controller性能压力越大。

压测结果

1.0

topic总数 单机分区数 Broker启动耗时(s) Broker关闭耗时(s) Controller切换耗时(s) Broker kill -9 Controller处理耗时 备注
1 40 5 4 6 9
2 100 6 4 5 6
3 160 6 4 30 7
4 220 5 3 30 7
6 400 5 4 19 7
9 580 7 18 30 6
12 760 7 20 21 9
16 1000 7 22 22
31 1900 8 22 32
46 2800 7 25 39
61 3700 8 34 33
91 5500 8 113 47 删除topic慢
121 7300 9 92 97
151 9100 10 86 85 删除topic特别慢
181 10900 12 87 87
221 13300 13 108 98 已经不能删除topic
image.png

1.1

topic总数 单机分区数 Broker启动耗时(s) Broker关闭耗时(s) Controller切换耗时(s) Broker kill -9 Controller处理耗时 备注
1 40 5 2 1 5
2 100 4 2 1 5
3 160 5 4 2 6
4 220 4 2 2 6
6 400 5 2 1 6
9 580 5 3 2 6
12 760 6 4 1 6
16 1000 7 3 2
31 1900 6 5 3
46 2800 7 5 3
61 3700 4 7 4
91 5500 7 7 6
121 7300 10 8 8
151 9100 9 8 10
181 10900 10 10 12
221 13300 12 13 16 删除topic慢
image.png

1.0与1.1对比

image.png

image.png

image.png

image.png

分析

     从压测结果可以看到,随着分区数越来越多,耗时指标均呈现上涨趋势。启动Broker启动耗时上涨最慢,应该是分区内没数据,所以加载很快,线上遇到过分区数500,加载半小时的情况。Broker关闭耗时上涨较快是因为在优雅关闭时需要进行Leader切换,导致时间较长。Controller耗时上涨是由于需要管理的分区数增长导致。1.1版本的Controller性能确实提高不少,在分区数持续增长情况下,耗时也能基本保持在个位数。
     直接对Broker进行kill -9,发现Controller对的处理耗时并未明显增长。具体又分为两种情况:1、kill -9比优雅关闭耗时短,这和预期也一致,因为优雅关闭会将当前要刷盘的数据刷完后才会关闭各类线程,耗时必然会长一些。2、kill -9比优雅关闭耗时长,这主要是因为znode节点失效时间导致,默认是6s,所以最长等待6s才会认为该broker挂掉,进行Leader切换的处理流程。
     最后,如果有升级计划,最好升级到1.1版本或之后的版本~~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,469评论 0 9
  • 在一个Kafka集群中,某个broker会被选举出来承担特殊的角色,即控制器(下称controller)。就是管理...
    SlowGO阅读 438评论 0 1
  • Design 1. Motivation 我们设计Kafka用来作为统一的平台来处理大公司可能拥有的所有实时数据源...
    BlackManba_24阅读 1,422评论 0 8
  • 简介 Kafka从0.8.x版本开始引入副本机制,这样可以极大的提高集群的可靠性和稳定性。不过这也使得Kafka变...
    朱小厮阅读 1,960评论 0 1
  • 为欢送2018年,喜迎2019年,上午大扫除,午饭后开始扫楼道,为防止尘土飞扬,从一楼到二楼洒了一盆水,等了一会儿...
    黑白红666阅读 309评论 0 2