kafka - 设置 java 启动参数的正确方法
kafka - proper way to set java startup params
在为 Kafka 进程设置各种堆、GC 等 java 参数时,似乎存在相互冲突的思想流派。
一组说要编辑 kafka-server-start
bash 文件
- here
另一组说要设置一个系统变量,让 kafka 启动时获取它
- here
在 Confluent 的最新说明中,出现以下 'recommendations':
-Xms6g -Xmx6g -XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20
-XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M
-XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80
关于在哪里设置这些的官方 Confluent 聚会路线 是什么? (我假设默认值不使用这些来适应较小的测试机器)
这两件事本质上都是告诉你做同样的事情,就是手动覆盖 KAFKA_HEAP_OPTS
的值。
看起来像 this is what you are looking for 来自 kafka-server-start.sh
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi
EXTRA_ARGS=${EXTRA_ARGS-'-name kafkaServer -loggc'}
如果您是从命令行启动的,您可以调用
export KAFKA_HEAP_OPTS="-Xmx2g -Xms2g"
./kafka-server-start.sh
或者,如果您首先编辑启动脚本,则不需要export
,因为该变量在本地使用。
KAFKA_HEAP_OPTS="-Xmx2g -Xms2g"
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi
第一个的好处是它不需要更改 kafka-source,并且允许仅通过 shell 个变量配置环境;
第二个方便的是你不需要记得在启动服务器之前设置你的环境变量。
在为 Kafka 进程设置各种堆、GC 等 java 参数时,似乎存在相互冲突的思想流派。
一组说要编辑 kafka-server-start
bash 文件
- here
另一组说要设置一个系统变量,让 kafka 启动时获取它
- here
在 Confluent 的最新说明中,出现以下 'recommendations':
-Xms6g -Xmx6g -XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20
-XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M
-XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80
关于在哪里设置这些的官方 Confluent 聚会路线 是什么? (我假设默认值不使用这些来适应较小的测试机器)
这两件事本质上都是告诉你做同样的事情,就是手动覆盖 KAFKA_HEAP_OPTS
的值。
看起来像 this is what you are looking for 来自 kafka-server-start.sh
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi
EXTRA_ARGS=${EXTRA_ARGS-'-name kafkaServer -loggc'}
如果您是从命令行启动的,您可以调用
export KAFKA_HEAP_OPTS="-Xmx2g -Xms2g"
./kafka-server-start.sh
或者,如果您首先编辑启动脚本,则不需要export
,因为该变量在本地使用。
KAFKA_HEAP_OPTS="-Xmx2g -Xms2g"
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi
第一个的好处是它不需要更改 kafka-source,并且允许仅通过 shell 个变量配置环境;
第二个方便的是你不需要记得在启动服务器之前设置你的环境变量。