Kafka集群参数调优

JVM参数调优

默认情况下启动Broker进程只会使用1G内存,在实际使用过程中会导致频繁的GC,会影响Kafka集群的性能和稳定性。

[root@hadoop01 bin]# vim kafka-server-start.sh 

image-20240313101345697

# 查看 gc 的详细信息
[root@hadoop01 kafka_2.12-2.4.0]# jstat -gcutil 60640 1000
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
  0.00 100.00  56.07  37.23  92.00  92.32     87    2.533     0    0.000    2.533
  0.00 100.00  56.07  37.23  92.00  92.32     87    2.533     0    0.000    2.533
  0.00 100.00  56.07  37.23  92.00  92.32     87    2.533     0    0.000    2.533
  0.00 100.00  56.07  37.23  92.00  92.32     87    2.533     0    0.000    2.533
  0.00 100.00  56.23  37.23  92.00  92.32     87    2.533     0    0.000    2.533
  0.00 100.00  56.23  37.23  92.00  92.32     87    2.533     0    0.000    2.533
  0.00 100.00  56.23  37.23  92.00  92.32     87    2.533     0    0.000    2.533
  0.00 100.00  56.23  37.23  92.00  92.32     87    2.533     0    0.000    2.533
  0.00 100.00  56.23  37.23  92.00  92.32     87    2.533     0    0.000    2.533
^CYou have new mail in /var/spool/mail/root

Replication参数调优

  • replica.socket.timeout.ms=60000,控制partition副本之间的socket的通信超时时间,默认是30,如果值太小可能会误判某个partition副本连不上
  • replica.lag.time.max.ms=50000,如果一个副本在指定的时间内没有向leader发送请求或者没有同步完leader的数据,leader就会将其从isr中移除,默认是10s,如果集群网络不好或者kafka压力比较大,建议将这个值调大一些,否则会频繁出现副本流失,进而导致集群需要频繁复制副本,导致集群压力更大,恶性循环

Log参数调优

  • log.retention.hours=24,默认值是7天

Topic命名小技巧

  • Topic名称:action_r2p10,r2:表示partition的副本因子是2,p10:表示Topic的分区数是10,这样可以清楚的知道应该设置多少个消费者去消费数据的效率更高,效率最高的就是消费者的数量和Topic分区的数量保持一致

Kafka集群监控管理工具-CMAK

  • 下载地址:https://github.com/yahoo/CMAK
  • jdk11环境:https://repo.huaweicloud.com/java/jdk/11.0.2+7/
[root@hadoop01 cmak-3.0.0.4]# unzip cmak-3.0.0.4.zip 
# 首行添加,jdk只要解压不需要配置环境变量
[root@hadoop01 cmak-3.0.0.4]# vim cmak
JAVA_HOME=/home/soft/jdk11
[root@hadoop01 cmak-3.0.0.4]# vim application.conf 
cmak.zkhosts="hadoop01:2182,hadoop02:2181,hadoop03:2181"

# 重启kafka
[root@hadoop01 kafka]# JMX_PORT=9988 bin/kafka-server-start.sh -deamon config/server.properties 
# 启动cmk
[root@hadoop01 cmak-3.0.0.4]# bin/cmak -Dconfig.file=conf/application.conf -Dhttp.port=9876


访问9876端口


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e19b99a845ba42d7b0e42b48b23dcfba.png#pic_center)

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kafka 3.4.0 是一个比较老的版本,但是参数调优的方法基本上和较新版本相同。下面是一些可以考虑的参数调优: 1. 增加分区数:增加分区数可以提高 Kafka 集群的吞吐量。但是,增加分区数也会增加管理和维护的复杂性。在增加分区数之前,需要评估分区数对集群的影响。 2. 调整副本数:副本数决定了数据的冗余度,也影响了 Kafka 集群的可用性。增加副本数可以提高数据的可靠性,但是也会增加网络带宽的使用和磁盘空间的占用。在调整副本数之前,需要评估副本数对集群的影响。 3. 调整 batch.size 和 linger.ms:batch.size 和 linger.ms 参数控制了消息发送的批处理方式。batch.size 参数控制了批处理的消息数量,linger.ms 参数控制了消息在缓冲区中等待的时间。调整这些参数可以提高 Kafka 集群的吞吐量。 4. 增加 JVM 堆内存:Kafka 使用 JVM 运行,因此增加 JVM 堆内存可以提高 Kafka 集群的性能。但是,增加 JVM 堆内存也会增加 GC 的开销。在增加 JVM 堆内存之前,需要评估 JVM 堆内存对集群的影响。 5. 调整网络缓冲区大小:Kafka 使用网络传输消息,因此调整网络缓冲区大小可以提高 Kafka 集群的性能。但是,调整网络缓冲区大小也会增加网络带宽的使用。在调整网络缓冲区大小之前,需要评估网络缓冲区大小对集群的影响。 这些都是一些常见的参数调优方法,但是对于不同的 Kafka 集群,需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拉霍拉卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值