我遇到了一些我无法完全解决的问题,所以我认为我会比我更聪明。

我的问题是,我试图弄清楚Docker如何与主机CPU交互以及Docker和Host中的哪个优先使用资源。我希望主机的CPU使用率优先于容器。

到目前为止,我已经启动了一个常规的Ubuntu容器,并使用cAdvisor监视了该容器的性能。然后,我使用linux Stress工具在容器内运行了一个CPU hog,占用了所有内核。

stress -c 8

在确认容器确实使用了100%CPU之后,我在占用所有8个内核的主机上运行了相同的命令。我希望看到的是,由于主机现在正在使用所有资源,因此该容器的CPU使用率将下降到接近0%。相反,我看到的是以下内容:

CPU Usage of Docker Container

因此,容器和主机似乎平均共享CPU资源。我还尝试过在主机上运行压力工具,其niceness值为-20,结果与上面相同。

有什么方法可以设置主机的CPU优先级,以便当主机使用所有容器时,Docker容器几乎不使用任何CPU资源?

感谢您能获得的任何帮助!

最佳答案

通过设置 cpu-period cpu-quota cpuset-cpus ,有几种方法可以限制容器的处理器使用率。

以下内容会将容器处理器的使用限制为33%。

docker run -it --cpu-quota=33000 ubuntu:latest /bin/bash

这些选项在Docker文档中进行了描述:
https://docs.docker.com/engine/reference/run/

关于linux - 应用CPU占用时的Docker和CPU优​​先级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40041275/

10-16 23:02