首页 > 解决方案 > 为每个容器分配 CPU

问题描述

我浏览了 DCA 考试题,发现两个相同的问题有不同的答案。谁能告诉我哪个是正确的以及为什么它是正确的?

一台主机有四个可用的 CPU 和两个正在运行的容器。系统管理员想为每个容器分配两个 CPU。以下哪个命令可以实现这一点?

  1. 将 'dockerd' 进程的 '--cpuset-cpus' 标志设置为值 'even-spread'
  2. 在一个容器上将“--cpu-quota”标志设置为“1.3”,在另一个容器上设置“2,4”。
  3. 将两个容器上的“--cpuset-cpus”标志设置为“.5”
  4. 在一个容器上将“--cpuset-cpu”标志设置为“1.3”,在另一个容器上设置“2.4”。

标签: docker

解决方案


一些解释:

--cpu-quota: --cpu-quota 选项指定容器在 --cpu-period 指定的时间段内可以访问 CPU 资源的微秒数。

--cpuset-cpus如果您的系统中有超过 1 个 CPU,那么您需要使用此选项来指定容器从哪个 CPU 使用多少 CPU。

示例:如果您每个有 3 个 CPU 和 2 个核心,那么现在您需要非常具体地说明您的容器需要使用 3 个 CPU 中的哪个,以及容器是否要部分使用多个 CPU。(如果您看不懂,请再读一遍)。

选项讨论:

  1. dockerd与容器 CPU 使用率无关。

  2. --cpu-quota指定容器使用 CPU 的毫秒数。这意味着它不会将 CPU 分配给容器。

  3. --cpuset-cpus确实将 CPU 分配给容器,但您需要以逗号/连字符分隔的 CPU 指定。

  4. 这里。--cpuset-cpus通过指定将 1 和 3 CPU 用于第一个容器,将 2 和 4 CPU 用于第二个容器,将 CPU 分配给容器。


推荐阅读