Kafka Best Practices +如何为JVM设置推荐设置

问题描述 投票:1回答:2

JVM的推荐设置如下所示

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

我的问题是 - 如何为Kafka设置上述Java选项?

我知道我们可以确定

export KAFKA_HEAP_OPTS="-Xmx8G -Xms8G"

但不确定我们是否可以附加整条线

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

到KAFKA_HEAP_OPTS变量

参考 - https://community.hortonworks.com/articles/80813/kafka-best-practices-1.html

java jvm apache-kafka
2个回答
2
投票

你可以查看kafka-run-class.sh,在这里你可以看到kafka用来启动java进程的env变量:

  • $KAFKA_HEAP_OPTS
  • $KAFKA_JVM_PERFORMANCE_OPTS
  • $KAFKA_GC_LOG_OPTS
  • $KAFKA_JMX_OPTS
  • $KAFKA_LOG4J_OPTS

然后它运行java应用程序传递它们:

nohup $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS....

基本上env变量的内容只是按原样附加到命令中,只要jvm参数的顺序正确,放置设置的位置并不重要。

所以,你可以简单地改变$KAFKA_HEAP_OPTS然后保持变量名称与他们的内容一致我将-Xmx8g -Xms8g放在KAFKA_HEAP_OPTS和剩余的优化到KAFKA_JVM_PERFORMANCE_OPTS


1
投票

如你所述,-Xmx8G -Xms8G应使用KAFKA_HEAP_OPTS设置。

对于您列出的其他配置,您应该使用KAFKA_JVM_PERFORMANCE_OPTS

我不知道有清楚描述所有支持的环境变量的地方。最好的方法是检查kafka-run-class.sh工具,因为它被所有工具调用,包括kafka-server-start.sh

例如:

© www.soinside.com 2019 - 2024. All rights reserved.