kafka启动报错-XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -
启动kafka的时候报错,查看错误log显示如下
Java HotSpot™ 64-Bit Server VM (25.152-b16) for linux-amd64 JRE (1.8.0_152-b16), built on Sep 14 2017 02:16:14 by “java_re” with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
Memory: 4k page, physical 1865252k(461416k free), swap 0k(0k free)
CommandLine flags: -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -XX:InitialHeapSize=137438953472 -XX:+ManagementServer -XX:MaxHeapSize=137438953472 -XX:MaxNewSize=87244800 -XX:MaxTenuringThreshold=6 -XX:NewSize=87244800 -XX:OldPLABSize=16 -XX:OldSize=174489600 -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseConcMarkSweepGC -XX:+UseParNewGC
主要原因原因:kafka启动脚本kafka-server-start.sh中指定了kafka启动时需要的最小内存,默认为1G
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
虚拟机分配的虚拟内存在1G以下时就会出现该错误
解决:
vi /usr/local/kafka/bin/kafka-server-start.sh
将export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
改为export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"