【问题标题】:Docker and CPU Priority when applying CPU Hogs应用 CPU Hogs 时的 Docker 和 CPU 优先级
【发布时间】:2017-02-23 18:35:10
【问题描述】:

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

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

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

stress -c 8

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

CPU Usage of Docker Container

所以看起来容器和主机平均共享 CPU 资源。我还尝试在主机上运行压力工具,niceness 值为 -20,结果与上述相同。

有没有办法给主机设置 CPU 优先级,让 Docker 容器在主机使用所有 CPU 资源时几乎不使用 CPU 资源?

感谢我能得到的任何帮助!

【问题讨论】:

    标签: linux docker stress-testing


    【解决方案1】:

    有几个选项可以限制容器的处理器使用率,例如设置 cpu-periodcpu-quotacpuset-cpus强>。

    以下将容器处理器使用率限制为 33%。

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

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

    【讨论】:

    • 这篇文章一定会让你感兴趣:goldmann.pl/blog/2014/09/11/resource-management-in-docker
    • 这无疑是一本有趣的读物,但不是我想要的。我正在尝试研究主机端故障将如何影响虚拟化 VoD 服务。因此,从某种意义上说,我在运行容器时不喜欢这些容器,而是在运行时将 CPU 和内存占用等故障注入主机,以确定客户端从服务流式传输视频的客户端服务降级。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 2018-05-17
    相关资源
    最近更新 更多