POD Out of memory heap

1.定位步骤

  kubectl top node -n xxx 或者kubectl describe nodes 查看 pod申请资源是否合理

kubectl top pod --containers 会显示容器cpu 内存消耗细节,这个命令每个pod会显示三行

# 示例输出:
POD名称 空列 CPU 内存 # (1) 旧版汇总行(兼容性保留)
POD名称 POD CPU 内存 # (2) 系统容器(pause容器)
POD名称 业务容器名 CPU 内存 # (3) 实际业务容器

 

2. kubectl exec -it xx -n bbb -- bash

  # 查看默认最大堆大小(字节)
  java -XX:+PrintFlagsFinal -version | grep MaxHeapSize

 

# 运行时查看实际使用的堆大小
java -XX:+PrintCommandLineFlags -version

 

 

ps -ef |grep java  找到对应的应用的pid

# 3. 查看运行时JVM参数
jcmd <pid> VM.flags

# 4. 或者查看所有GC相关参数
jcmd <pid> VM.flags | grep -i gc

#查看堆真实使用情况

 jmap -heap pid

 

修改 dockerfile中 java的初始化参数

 

#  -XX:+PrintGCDetails -Xloggc:/logs/gc.log -XX:+PrintGCTimeStamps -XX:GCLogFileSize=10M

CMD java -Xms512m -Xmx2048m -XX:G1HeapRegionSize=8m -XX:+UseG1GC -jar /xxxx/xxx/xx.jar



image

 




查看栈

 

posted @ 2025-09-05 15:08  清明雨下  阅读(8)  评论(0)    收藏  举报