问题
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】Docker限制容器使用CPU,实际上限制的是
使用CPU的时间片
,内核通过进程消耗的CPU时间片来统计出进程占用CPU的百分比。另外:Docker支持通过
--cpuset-cpus
指定固定的CPU。参考
Docker: 限制容器可用的 CPU