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