在 Ubuntu 上设置 Kafka 的 JVM 参数
一 设置方式与位置
export KAFKA_HEAP_OPTS="-Xms4G -Xmx4G"
export KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/kafka/logs/heapdump.hprof"
执行 source /etc/profile.d/kafka.sh 使配置生效。二 关键参数与推荐值
-XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35
-XX:MetaspaceSize=96m -XX:MaxMetaspaceSize=256m
-XX:MaxDirectMemorySize=1g
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/kafka/logs/heapdump.hprof
-Djava.security.egd=file:/dev/./urandom
export KAFKA_HEAP_OPTS="-Xms8G -Xmx8G"
export KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/kafka/logs/heapdump.hprof -Djava.security.egd=file:/dev/./urandom"
以上做法与业界对 Kafka Broker 的 JVM 建议一致(G1、合理堆、留足 Page Cache、必要时 OOM Dump)。三 按 JDK 版本的差异
四 系统层面的必要配置
五 验证与常见问题
java -version(Kafka 3.3.0+ 支持 JDK 17;更老版本请使用 JDK 8/11)。ps -ef | grep kafka | grep -E 'Xms|Xmx|UseG1GC'。