docker运行“--cpus”标志令人困惑
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker运行“--cpus”标志令人困惑相关的知识,希望对你有一定的参考价值。
我指的是--cpus
的docker run
国旗。
文档说明标志中提供的数字是可用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)
。
答案
docker stat命令显示计算乘以CPU内核数,例如:如果您的主机有4个内核且任何应用程序使用100%CPU,那么docker stats输出就像400%,在您的情况下,它报告正确的值,因为您限制为0.5个核心意味着它1/2核心(1核50%)
以上是关于docker运行“--cpus”标志令人困惑的主要内容,如果未能解决你的问题,请参考以下文章
在 Docker 中混合 cpu-shares 和 cpuset-cpus