全球報道:【生產】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概念及調用流程