我想运行两个容器,其资源分配如下:
如果我以这种方式运行这两个容器:
docker run -d --name='C1' --cpu-shares=20 --cpuset-cpus="1,2" progrium/stress --cpu 2
docker run -d --name='C2' --cpu-shares=80 --cpuset-cpus="2,3" progrium/stress --cpu 2我得到的结论是,C1按预期收取100%的cpu1,但占cpu2的50% (而不是20%),C2按预期占cpu3的100%,占cpu2的50% (而不是80%)。
看起来--cpu-共享选项被忽略了。有什么方法可以获得我想要的行为吗?
发布于 2016-01-08 11:45:00
码头运行将该参数提到如下:
--cpu-shares=0 CPU shares (relative weight)contrib/completion/zsh/_docker#L452包括:
"($help)--cpu-shares=[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)"因此,这些值不是基于%的。
OP提到--cpu-shares=20/80与下面的Cpuset约束一起工作
docker run -ti --cpuset-cpus="0,1" C1 # instead of 1,2
docker run -ti --cpuset-cpus="3,4" C2 # instead of 2,3(这些值是验证/检查仅从码头1.9.1与PR 16159)
注意:还有CPU配额约束
--cpu-quota标志限制容器的CPU使用。默认的0值允许容器占用CPU资源的100% (1 CPU)。
https://stackoverflow.com/questions/34675795
复制相似问题