问题
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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。