【问题标题】:Why does docker have more cpus available than the limit I set?为什么 docker 的可用 cpu 比我设置的限制多?
【发布时间】:2021-04-11 07:00:38
【问题描述】:

我正在运行我的容器

docker run --rm -it --cpus=1 --memory "8G" -v "$pwd":"/code/" 'algolab' bash 

这意味着根据docs,容器将只使用一个cpu核心。

--cpus=0.000 CPU 数量。
Number 是一个小数。 0.000 表示没有限制。

但是当我在容器内运行 nproc 时,它告诉我它看到了 8 核心 - 与我的主机上的数字相同。

This answer 支持该声明。但它也提到了--cpuset-cpus="0-2"。当我使用它时,除了--cpus=1,我还从nproc 得到3 的结果。

为什么 docker 会忽略 --cpus=1 以及如何让它不再忽略它?


目前,我可以使用--cpuset-cpus="0",但我不明白为什么需要这样做。


$ docker --version
Docker version 19.03.6, build 369ce74a3c

【问题讨论】:

    标签: docker


    【解决方案1】:

    --cpus 选项设置 CPU 使用配额 - 这不限制可以使用的 CPU 或一次使用多少;这限制了它们可以在您的 CPU 上运行的总时间片。因此,如果您在具有 8 核的机器上传递--cpus 1,则容器将被限制在您的 CPU 时间的 1/8 上运行。 a different section of the docs 对此进行了介绍。

    【讨论】:

      猜你喜欢
      • 2014-12-08
      • 2022-11-02
      • 2018-12-24
      • 2018-07-19
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 2020-12-18
      • 2019-10-20
      相关资源
      最近更新 更多