应用CPU Hog时的Docker和CPU优​​先级

时间:2016-10-14 10:45:16

标签: linux docker stress-testing

我遇到了一些我无法完全理解的事情,所以我认为我会转向比我更聪明的思想。

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

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

Invalid access to memory location

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

CPU Usage of Docker Container

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

有没有办法为主机设置CPU优先级,以便当主机使用所有主机时,Docker容器几乎不会使用任何CPU资源?

感谢我能得到任何帮助!

1 个答案:

答案 0 :(得分:1)

有几种方法可以限制容器的处理器使用率,例如设置 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/