乐趣区

关于容器:快速学习Docker怎么限制容器可用的CPU

问题

Docker 是怎么限度容器 CPU 的?当容器设置 --cpus=1 时,是限度容器只能应用某一个 CPU 吗?那当 cpus 配置为小数时,又是怎么限度的?

实际

步骤:

  1. 在一台有 4 个 CPU 的主机上创立容器时,通过 --cpus=2 限度容器最多能够应用主机上的 2 个 CPU。
  2. 通过 stress 命令创立 4 个忙碌的过程耗费 CPU 资源,通过 docker stats 命令能够看到容器 CPU 的负载为200%,即单个 CPU 负载的两倍。
  3. 在主机上通过 top 命令,能够看到主机上的 CPU 应用状况是:4 个 CPU 都是50%

论断

Docker 限度容器应用 CPU,实际上限度的是 应用 CPU 的工夫片 ,内核通过过程耗费的 CPU 工夫片来统计出过程占用 CPU 的百分比。
另外:Docker 反对通过 --cpuset-cpus 指定固定的 CPU。

参考
Docker: 限度容器可用的 CPU

退出移动版