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)和段大小(log.segment.bytes),控制磁盘占用间接影响内存。系统层面协同
-XX:MaxDirectMemorySize,如4GB)及GC情况,通过jstat或Prometheus定位内存瓶颈。注意事项:修改配置前需在测试环境验证,优先通过监控(如Prometheus+Grafana)观察调整效果,避免直接在生产环境大规模变更。
参考来源: