← 返回首页
JVM参数调优
发表时间:2023-11-01 15:46:35
JVM参数调优

JVM参数调优。

1.JVM参数调优

默认启动的Broker进程只会使用1G内存,在实际使用中会导致进程频繁GC,影响Kafka集群的性能和稳定性。通过jstat -gcutil 1000查看到kafka进程GC情况。主要看YGC,YGCT,FGC,FGCT这几个参数,如果这几个值不是很大,一般就没有问题。

参数的具体含义如下:

[root@master kafka]# jps
4881 QuorumPeerMain
5972 Jps
5711 Kafka
[root@master kafka]# jstat -gcutil 5711 1000 
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
  0.00 100.00  29.79  14.30  91.32  93.12      5    0.103     0    0.000    0.103
  0.00 100.00  29.79  14.30  91.32  93.12      5    0.103     0    0.000    0.103
  0.00 100.00  29.79  14.30  91.32  93.12      5    0.103     0    0.000    0.103
  0.00 100.00  29.79  14.30  91.32  93.12      5    0.103     0    0.000    0.103
  0.00 100.00  29.79  14.30  91.32  93.12      5    0.103     0    0.000    0.103

如果你发现YGC很频繁,或者FGC很频繁,就说明内存分配的少了。此时需要修改kafka-server-start.sh中的 KAFKA_HEAP_OPTS


if [ $# -lt 1 ];
then
    echo "USAGE: $0 [-daemon] server.properties [--override property=value]*"
    exit 1
fi
base_dir=$(dirname $0)

if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then
    export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/log4j.properties"
fi

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi
export KAFKA_HEAP_OPTS="-Xmx10g -Xms10g -XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80"

这个配置表示给kafka分配了10G内存,这里的Kafka服务器是16G内存。