kafka 性能调优

2017/06/02 15:59
阅读数 265

# 每个topic默认partition数量,根据消费者实际情况配置,配置过小会影响消费性能

num.partitions=50

#日志传输时候的压缩格式,可选择lz4, snappy, gzip,不压缩。建议打开压缩,可以提高传输性能,压缩格式的选择可以参考文章结尾的参考资料。

compression.type=snappy

 

启用压缩的topic名称。若上面参数选择了一个压缩格式,那么压缩仅对本参数指定的topic有效,若本参数为空,则对所有topic有效。

compressed.topics=topic1

 

#用来从主partion同步数据的线程数,默认为1,建议适当调大,数据量大的时候一个同步线程可能不够用

num.replica.fetchers=3

 

#消息日志备份因子,默认是1

default.replication.factor=2

 

1.网络和io操作线程配置优化

# broker处理消息的最大线程数

num.network.threads=xxx

# broker处理磁盘IO的线程数

num.io.threads=xxx

建议配置:

一般num.network.threads主要处理网络io,读写缓冲区数据,基本没有io等待,配置线程数量为cpu核数加1.

num.io.threads主要进行磁盘io操作,高峰期可能有些io等待,因此配置需要大些。配置线程数量为cpu核数2倍,最大不超过3倍.

1.网络和io操作线程配置优化

# broker处理消息的最大线程数

num.network.threads=xxx

# broker处理磁盘IO的线程数

num.io.threads=xxx

建议配置:

一般num.network.threads主要处理网络io,读写缓冲区数据,基本没有io等待,配置线程数量为cpu核数加1.

num.io.threads主要进行磁盘io操作,高峰期可能有些io等待,因此配置需要大些。配置线程数量为cpu核数2倍,最大不超过3倍.

4.replica复制配置

每个follow从leader拉取消息进行同步数据,follow同步性能由这几个参数决定,分别为拉取线程数(num.replica.fetchers)、最小字节数(replica.fetch.min.bytes)、最大字节数(replica.fetch.max.bytes)、最大等待时间(replica.fetch.wait.max.ms)

建议配置:

num.replica.fetchers 配置多可以提高follower的I/O并发度,单位时间内leader持有跟多请求,相应负载会增大,需要根据机器硬件资源做权衡

replica.fetch.min.bytes=1  默认配置为1字节,否则读取消息不及时

replica.fetch.max.bytes= 5  * 1024 * 1024 默认为1MB,这个值太小,5MB为宜,根据业务情况调整

replica.fetch.wait.max.ms  follow拉取频率,频率过高,会导致cpu飙升,因为leader无数据同步,leader会积压大量无效请求情况,又因为0.8.2.x版本存在bug,定时器超时检查比较消耗CPU,使用者需要做好权衡

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部