【发布时间】:2016-06-10 15:44:20
【问题描述】:
我对 Docker 有点陌生,本周遇到了一个问题,即容器中的一个进程占用了 100% 的 CPU。运行时我没有对容器设置任何资源限制,这导致整个服务器停止响应。我无法 docker stop、docker kill,最终失去了 ssh 到主机的能力。我最终重新启动了机器。
我正在寻找允许主机保留一些 CPU 容量的选项,以便不会发生上述情况。
一种想法是在所有容器上使用 docker run --cpuset-cpus 以防止它们使用 CPU 0,这将只供主机使用。这种方法似乎很浪费。
其他选项在我如何限制方面不太清楚。
--cpu-shares只允许我将总使用量划分为百分比,这可能会使我处于上述相同的情况。--cpu-period和--cpu-quota对我来说不太清楚,但他们似乎不允许这样做。
有没有办法为主机保留一定百分比的 CPU?
【问题讨论】:
-
100% 的 CPU 仍然倾向于响应,即使慢了一点。我怀疑您可能会看到机器内存不足并将其他主机进程推出交换的结果。
-
我在失去连接之前看到的最后一次读数没有显示任何内存压力。
-
你找到答案了吗?
-
你说“容器中的进程占用 100% CPU”,如果你能看到那个进程是什么?另一件事是,如果你能展示你是如何启动你的容器的?你的命令...
标签: docker