kubernetes中运行kafka,pod一直OOM重启

宁静志远 发表于: 2019-07-25   最后更新时间: 2022-07-15 11:20:04   2,761 游览

当前将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重启的根本原因是什么?在当前资源的限制下,有什么更好的优化方案吗?

发表于 2019-07-25
添加评论

你这个OOM是kafka达到了,k8s主动杀的。
应该给kafka设置jvm,限制其不要超过。

宁静志远 -> 半兽人 5年前

"给kafka设置JVM“是什么意思,应该如何限制其不要超过?
当前JVM堆内存是2G-4G,Kubernetes的request是4G,limit是9G,这些参数哪里需要修改吗?

半兽人 -> 宁静志远 5年前

看看这个生效了没,KAFKA_HEAP_OPTS

半兽人 -> 半兽人 5年前

KAFKA_HEAP_OPTS: -Xmx4G -Xms2G

宁静志远 -> 半兽人 5年前

生效了,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太少了吗?

半兽人 -> 宁静志远 5年前

配置没问题,JVM也被限制了,这个容器里面,是否有其他的应用也占内存呢。
你进到容器里,看看。

你的答案

查看kafka相关的其他问题或提一个您自己的问题