kafka - 设置java启动参数的正确方法

时间:2016-09-20 17:51:20

标签: java apache-kafka confluent

在为 Kafka 进程设置各种堆,GC等java参数时,似乎存在冲突的思想流派。

一组说要编辑kafka-server-start bash文件

另一个小组说要设置一个系统var并让kafka初创公司拿起它

在汇总的最新说明中,以下建议'出现:

-Xms6g -Xmx6g -XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20
   -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M
   -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80

官方汇款派对在哪里设置这些内容? (我认为默认设置不能用于容纳较小的测试机器)

1 个答案:

答案 0 :(得分:1)

这两件事基本上都在告诉你做同样的事情,即手动覆盖KAFKA_HEAP_OPTS的值。

kafka-server-start.sh

看起来像this is what you are looking for
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变量配置环境;

第二种方便,因为在启动服务器之前不需要记住设置环境变量。