Kafka內存配置需從JVM堆內存、緩沖區內存及系統層面綜合優化,以下是關鍵建議:
JVM堆內存
kafka-server-start.sh
中KAFKA_HEAP_OPTS
設置,建議為物理內存的50%-70%,且不超過32GB(避免超出JVM優化范圍)。-Xms8G -Xmx8G
(8GB服務器可設為4-6GB)。-XX:+UseG1GC -XX:MaxGCPauseMillis=20
以減少GC停頓。緩沖區內存
buffer.memory
參數控制消息緩沖,建議設為可用內存的50%-70%(需預留部分給JVM和系統)。
buffer.memory
根據吞吐量調整,避免堆積。fetch.min.bytes
和fetch.max.wait.ms
可減少拉取頻次,優化內存使用。系統層面優化
-XX:MaxDirectMemorySize
控制,避免溢出。vm.swappiness=10
減少內存交換,net.core.rmem_max
增大TCP緩沖區。驗證與調優
jstat
、jmap
監控JVM內存,或通過Prometheus+Grafana實時觀測。核心原則:平衡JVM堆內存與系統內存,根據業務負載動態調整緩沖區,優先通過監控定位瓶頸。