当前将Kafka运行在Kubernetes中,6 Broker,每个节点配置如下: Limits: cpu: 4 memory: 9Gi Requests: cpu: 2 memory: 4Gi JVM堆内存设置:KAFKA_HEAP_OPTS: -Xmx4G -Xms2G Kafka Pod时常OOM重启,虽说kafka是内存大户,但在当前业务量的情况下似乎也足够了。请问OOM重启的根本原因是什么?在当前资源的限制下,有什么更好的优化方案吗?
你这个OOM是kafka达到了,k8s主动杀的。
应该给kafka设置jvm,限制其不要超过。
"给kafka设置JVM“是什么意思,应该如何限制其不要超过?
当前JVM堆内存是2G-4G,Kubernetes的request是4G,limit是9G,这些参数哪里需要修改吗?
看看这个生效了没,KAFKA_HEAP_OPTS
KAFKA_HEAP_OPTS: -Xmx4G -Xms2G
生效了,kafka的启动进程是:
/usr/lib/jvm/java-8-openjdk-amd64/bin/java -Xmx4G -Xms2G -server -XX:+UseG1GC -XX:Max
GCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true -Xloggc:/opt/kafka/bin/.
./logs/kafkaServer-gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:Num
berOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.mana
gement.jmxremote.ssl=false ...
Kubernetes Pod设置 Limit 9G太少了吗?
配置没问题,JVM也被限制了,这个容器里面,是否有其他的应用也占内存呢。
你进到容器里,看看。
你的答案