一 通过JPS命令获取kafka的pid
jps ---- kafka ---- pid 112854
二 使用jstat查看gc的信息
jstat -gc 112854 1s 30
可以显示gc的信息,查看gc的次数,及时间
112854,VM的进程号,即当前运行的java进程号
1s,间隔时间,单位为秒或者毫秒
30,打印次数,如果缺省则打印无数次
参数说明:S0C:第一个幸存区的大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
EC:伊甸园区的大小
EU:伊甸园区的使用大小
OC:老年代大小
OU:老年代使用大小
MC:方法区大小
MU:方法区使用大小
CCSC:压缩类空间大小
CCSU:压缩类空间使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
三 使用jmap查看kafka当前的堆内存信息
jmap -heap 112854
显示Java堆详细信息 打印一个堆的摘要信息,包括使用的GC算法、堆配置信息和各内存区域内存使用信息
四 kafka启动文件kafka-run-class.sh
修改堆内存大小解决问题
if [ -z "$KAFKA_HEAP_OPTS" ]; then
KAFKA_HEAP_OPTS="-Xmx5G"
Fi