gpt4 book ai didi

ubuntu - Docker CPU 与主机进程争用

转载 作者:行者123 更新时间:2023-12-02 19:39:34 26 4
gpt4 key购买 nike

我有一些作为 docker 容器运行的进程和一些直接在主机中运行的进程。实际上,这些主机进程之一也启动了其他 docker 容器。因此,将所有内容移至 docker 并在 docker 中运行 docker 并不是我想做的事情。

在大量 docker 容器启动的重负载期间,它们最终会占用 100% 的 cpu,几乎没有给主机进程留下任何东西。即使是应该杀死这些容器的主机进程也无法运行。

是否可以将所有 docker 容器的总 CPU 使用率限制在 90% 左右,因此即使在重负载下主机进程也能获得 10% 的 cpu?

设置 cpu shared 没有帮助,因为它们只是所有 docker 容器的相对权重。他们不会为主人留下任何东西。

设置 cpu 配额是次优的,它们要么在使用率低时导致利用率不足,而在负载重时仍然不会停止。

最佳答案

如果您在 native 运行,则无法以这种方式限制负载。

如果您使用的是虚拟机(例如在 OSX 或 Windows 上运行),您可以通过 VM 设置来限制这一点,但除此之外,实际上没有任何方法可以有效地使用 docker 做到这一点。

但是,如果要限制机器可用的 CPU 总数,可以尝试 --cpuset ( doc link ) 它允许您指定容器的可用 CPU 总数。

根据您的情况,您可能能够完成这项工作 - 如果您在 4 核机器上运行,您可以将 3 分配给容器并将 1 留给主机。它仍然有点低效,但对于您的情况可能已经足够了。

从文档:

$ docker run -it --cpuset-cpus="1,3" ubuntu:14.04 /bin/bash

但是,如果您已经发现 cpu 配额选项受到限制,我不确定这是否会更好。

关于ubuntu - Docker CPU 与主机进程争用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39698732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com