Kafka調整內存使用可從JVM堆內存、緩沖區內存及系統層面優化,具體如下:
JVM堆內存設置
kafka-server-start.sh
中KAFKA_HEAP_OPTS
,設置初始堆(-Xms
)和最大堆(-Xmx
)為相同值,避免動態調整開銷,建議不超過物理內存50%且≤32GB(如-Xms16G -Xmx16G
)。-XX:+UseG1GC
),并設置MaxGCPauseMillis
(目標暫停時間,如20ms)、InitiatingHeapOccupancyPercent
(觸發GC的堆占用比,如35%)。緩沖區內存優化
fetch.min.bytes=1MB
、fetch.max.wait.ms=500ms
。其他關鍵參數
log.retention.hours
)和段大?。?code>log.segment.bytes),控制磁盤占用間接影響內存。系統層面協同
-XX:MaxDirectMemorySize
,如4GB)及GC情況,通過jstat
或Prometheus定位內存瓶頸。注意事項:修改配置前需在測試環境驗證,優先通過監控(如Prometheus+Grafana)觀察調整效果,避免直接在生產環境大規模變更。
參考來源: