如何为Kafka配置推荐JVM参数?能否将完整参数加入KAFKA_HEAP_OPTS?
如何为Kafka配置指定的JVM参数
完全可以把你给出的所有JVM参数都添加到KAFKA_HEAP_OPTS变量中——虽然这个变量原本是专门用来配置堆相关参数的,但Kafka的启动脚本会把这个变量里的所有JVM参数都传递给Java进程,所以这么做完全可行。当然,如果你想更清晰地区分堆参数和其他JVM配置,也可以拆分到不同的变量里,下面给你两种具体的配置方式:
方式一:所有参数统一放到KAFKA_HEAP_OPTS
临时生效(当前终端会话)
直接在终端执行以下命令,然后启动Kafka即可:
export KAFKA_HEAP_OPTS="-Xmx8g -Xms8g -XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80"
永久生效(每次启动都加载)
找到Kafka安装目录下的config文件夹,创建或编辑kafka-env.sh文件(如果没有这个文件,直接新建即可),在文件中添加上述export命令:
export KAFKA_HEAP_OPTS="-Xmx8g -Xms8g -XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80"
之后每次启动Kafka,这个配置都会自动生效。
方式二:拆分堆参数与其他JVM配置(更清晰)
如果你想把堆相关参数和其他JVM配置分开管理,可以分别设置KAFKA_HEAP_OPTS和KAFKA_OPTS:
临时生效
export KAFKA_HEAP_OPTS="-Xmx8g -Xms8g" export KAFKA_OPTS="-XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80"
永久生效
同样在kafka-env.sh中添加:
export KAFKA_HEAP_OPTS="-Xmx8g -Xms8g" export KAFKA_OPTS="-XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80"
两种方式都能让你的JVM配置正常作用于Kafka,选哪种全看你自己的习惯~
内容的提问来源于stack exchange,提问作者enodmilvado
相关产品推荐
相关产品推荐

