问题

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