全球报道:【生产】kafka 调优

2022-12-09 15:08:19 来源:51CTO博客


(资料图)

适用于 es 和kafka

jstat -gcutil pid

jstat -gcutil  pid 1000   通过 jstat -gcutil 1000 查看到kafka进程GC情况 主要看 YGC,YGCT,FGC,FGCT 这几个参数,如果这几个值不是很大,就没什么问题   YGC:young gc发生的次数  YGCT:young gc消耗的时间  FGC:full gc发生的次数  FGCT:full gc消耗的时间   如果你发现 YGC 很频繁,或者 FGC 很频繁,就说明内存分配的少了  此时需要修改 kafka-server-start.sh 中的 KAFKA_HEAP_OPTS replica.socket.timeout.ms=60000 这个参数的默认值是30秒,它是控制partiton副本之间socket通信的超时时间,如果设置的太小,有可能 会由于网络原因导致造成误判,认为某一个partition副本连不上了。  replica.lag.time.max.ms=50000 如果一个副本在指定的时间内没有向leader节点发送任何请求,或者在指定的时间内没有同步完leader中 的数据,则leader会将这个节点从Isr列表中移除。 这个参数的值默认为10秒 如果网络不好,或者kafka压力较大,建议调大该值,否则可能会频繁出现副本丢失,进而导致集群需要 频繁复制副本,导致集群压力更大,会陷入一个恶性循环

如果你发现 YGC 很频繁,或者 FGC 很频繁,就说明内存分配的少了

Log参数调忧

Log参数调忧   log.retention.hours=24 这个参数默认值为168,单位是小时,就是7天,默认对数据保存7天,可以在这调整数据保存的时间,我 们在实际工作中改为了只保存1天,因为kafka中的数据我们会在hdfs中进行备份,保存一份,所以就没有 必要在kafka中保留太长时间了。 在kafka中保留只是为了能够让你在指定的时间内恢复数据,或者重新消费数据,如果没有这种需求,那 就没有必要设置太长时间。 这里分析的 Replication 的参数和 Log 参数都是在 server.properties 文件中进行配置 JVM 参数是在 kafka-server-start.sh 脚本中配置

标签: 的时间内 网络不好 为了能够

上一篇:查看某个topic 消费速率
下一篇:焦点讯息:tekton pipline概念及调用流程