Kafka服务侧常见性能调优参数

举报
边塞诗人 发表于 2022/07/26 16:30:16 2022/07/26
【摘要】 Kafka服务侧常见性能调优参数

kafka集群性能调优:

Kafka的集群调优通常考虑维度主要有两个,第一,是磁盘读写能力,第二,网络带宽。

磁盘的读写的负载可以通过命令:iostat –x -1 查看 idle指标,这个值越大代表磁盘越空闲。万兆网卡的极限能力为1250M/s,网络速度可以通过前台界面的,主机管理->对应主机网络写入速度网络读取速度获取。通常在性能的极限情况下,磁盘io会成为性能瓶颈。Kafka侧优化写入性能的参数如下:

配置项

缺省值

调优场景

num.recovery.threads.per.data.dir

10

每个数据目录用来数据恢复的线程数目。在Kafka启动过程中,数据量较大情况下,可调大此参数,可以提升启动速度。

background.threads

10

Broker后台任务处理的线程数目。数据量较大的情况下,可适当调大此参数,以提升Broker处理能力。

num.replica.fetchers

1

副本向Leader请求同步数据的线程数。增大这个数值会增加副本的I/O并发度。

num.network.threads

3

Broker用来处理网络请求的线程数目

num.io.threads

8

Broker用来处理磁盘I/O的线程数目。这个线程数目建议至少等于硬盘的个数。

queued.max.requests

500

指定用于缓存网络请求的队列的最大容量,这个队列达到上限之后将不再接收新请求。      
在网络线程停止读取新请求之前,可以排队等待I/O线程处理的最大请求个数。增大queued.max.requests能够缓存更多的请求,以撑过业务峰值。如果过大,会造成内存的浪费。

socket.receive.buffer.bytes

102400

服务端接收缓冲区大小,增加该参数能够提升生产、消费数据在缓冲区的数量,从而提升网络传输的吞吐量

socket.send.buffer.bytes

102400

服务端发送缓冲区大小,增加该参数能够提升生产、消费数据在缓冲区的数量,从而提升网络传输的吞吐量

replica.socket.receive.buffer.bytes

65536

备份时向leader发送网络请求时的socket receive buffer

replica.lag.max.messages

4000

如果一个副本中没有同步的消息条数超过这个数值,Leader会认为该副本已经失效,并将其从ISR中移除。

KAFKA_HEAP_OPTS

-Xmx6G -Xms6G

Kafka内存占用参数配置。

 
















Kafka集群的性能参数调整到最优值后,kafka数据的处理能力会大幅度提升cpu的使用率也会增加。如果后续节点上的数据流量持续增长,CPU的使用率也会上升。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。