【发布时间】:2021-02-14 23:59:10
【问题描述】:
我在 Kubernetes pod 中运行 apache,我对 apache 进程的随机 OOM 终止感到困扰,我不确定原因。
Pod 有 600M 的内存限制,即使 PHP 每次运行有 128 MB 的限制,它似乎也可以很容易地消耗它。在观察dmesg -w时,我可以经常看到:
[4019392.626796] Memory cgroup out of memory: Kill process 4178127 (apache2) score 1137 or sacrifice child
[4019392.636520] Killed process 4178127 (apache2) total-vm:143960kB, anon-rss:22856kB, file-rss:10472kB, shmem-rss:28228kB
- 如何确定此 OOM 终止与机器或 pod 限制有关?
- 有几个 apache pod,我不确定如何识别该进程所属的 pod。有办法吗?
- 如果这些可以在 pod 中访问,那就太好了,这样人们就可以看到实际上属于 pod 的已终止线程(最好是在错误输出中)。有可能吗?
【问题讨论】:
-
你能分享 apache pod 的
kubectl get pods、kubectl logs ${POD_NAME} ${CONTAINER_NAME}和kubectl describe pod <pod_name>的输出吗? -
这些日志中没有任何内容 - 这只发生在节点级别。 pod 本身没有被杀死,这些日志中绝对没有错误。
标签: kubernetes out-of-memory cgroups