问题
Docker 是怎么限度容器 CPU 的?当容器设置 --cpus=1
时,是限度容器只能应用某一个 CPU 吗?那当 cpus
配置为小数时,又是怎么限度的?
实际
步骤:
- 在一台有
4
个 CPU 的主机上创立容器时,通过--cpus=2
限度容器最多能够应用主机上的 2 个 CPU。 - 通过
stress
命令创立 4 个忙碌的过程耗费 CPU 资源,通过docker stats
命令能够看到容器 CPU 的负载为200%
,即单个 CPU 负载的两倍。 - 在主机上通过
top
命令,能够看到主机上的 CPU 应用状况是:4 个 CPU 都是50%
。
论断
Docker 限度容器应用 CPU,实际上限度的是 应用 CPU 的工夫片
,内核通过过程耗费的 CPU 工夫片来统计出过程占用 CPU 的百分比。
另外:Docker 反对通过 --cpuset-cpus
指定固定的 CPU。
参考
Docker: 限度容器可用的 CPU