docker运行“--cpus”标志令人困惑

时间:2018-05-08 07:25:19

标签: docker resources cpu

我指的是docker run--cpus标志。

文档说明标志中提供的数字是可用CPU数量的数量,我发现这是不正确的。

来自文档:

--cpus=0.000    Number of CPUs. Number is a fractional number. 0.000 means no limit.

来自limit resources文档:

--cpus=<value>  Specify how much of the available CPU resources a container can use. For instance, if the host machine has two CPUs and you set --cpus="1.5", the container is guaranteed at most one and a half of the CPUs. This is the equivalent of setting --cpu-period="100000" and --cpu-quota="150000". Available in Docker 1.13 and higher.

我在具有2个cpus的docker容器中尝试了上面的确切内容,这导致docker stats的CPU%使用率为100%(应该是75%)。与以下声明相同的结果:

docker run --cpus 1.5 ...
docker run --cpus=1.5 ...
docker run --cpus="1.5" ...

当我尝试设置0.5的值时:

docker run --cpus 0.5 ...

docker stats中的CPU资源限制为50%,这不符合docker提供的文档,因为docker stats CPU%结果应该是25%(2个CPU,0.5个CPU)可用的结果占CPU容量的25%)

我试图找出为什么我对文档的看法与我的结果有所不同,可能是我docker stats中对CPU%的错误解释,或者是docker提供的错误文档,在后一种情况下,我可以向Docker报告。

我在Mac上运行版本Version 18.03.1-ce-mac65 (24312)

1 个答案:

答案 0 :(得分:0)

docker stat命令显示计算乘以CPU内核数,例如:如果您的主机有4个内核且任何应用程序使用100%CPU,那么docker stats输出就像400%一样,在您的情况下它会报告正确的值,因为您限制为0.5核心意味着它是1/2核心(1核心中50%)