首页/云/Kubernetes 速查/OOMKilled:容器内存超限被杀
本包目录(307 条)
kubectl 基础56 条工作负载36 条网络与服务55 条配置与存储54 条
调度与资源52 条
集群运维与排障54 条

OOMKilled:容器内存超限被杀

退出码 137 且 lastState 显示 OOMKilled,表示容器内存超过 limit 被内核杀掉;须先区分容器级超限与节点级内存枯竭。

Kubernetes 速查云更新于 2026-10-12

确认与取证

确认与取证
kubectl get pod web-x -o jsonpath='{.status.containerStatuses[0].lastState}'
kubectl describe pod web-x | sed -n '/Last State/,+4p'
kubectl logs web-x --previous --tail=100

两类 OOM 的区分

两类 OOM 的区分
容器级:容器用量超过 memory limit → 容器被杀、重启计数增加
节点级:节点内存枯竭 → kubelet 驱逐 Pod 或内核 SystemOOM,事件里可见 Evicted/SystemOOM

易错点

  • 只看 describe 不看 --previous 日志:被杀前往往已有大量报错线索
  • Java/Node 的堆外内存(元空间、直接内存)不在堆里,limit 只按堆大小设会反复 OOM

数据来源与参考

  • Kubernetes 官方文档 · Pod 故障排查(OOMKilled)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌