首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker中cpu共享和cpuset cpu的混合

Docker中cpu共享和cpuset cpu的混合
EN

Stack Overflow用户
提问于 2016-01-08 11:17:36
回答 1查看 1.6K关注 0票数 5

我想运行两个容器,其资源分配如下:

  • 容器"C1":保留的cpu1,与20个cpu共享的共享cpu2
  • 容器"C2":保留的cpu3,与80个cpu共享的共享cpu2

如果我以这种方式运行这两个容器:

代码语言:javascript
复制
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-共享选项被忽略了。有什么方法可以获得我想要的行为吗?

EN

回答 1

Stack Overflow用户

发布于 2016-01-08 11:45:00

码头运行将该参数提到如下:

代码语言:javascript
复制
--cpu-shares=0                CPU shares (relative weight)

contrib/completion/zsh/_docker#L452包括:

代码语言:javascript
复制
"($help)--cpu-shares=[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)"

因此,这些值不是基于%的。

OP提到--cpu-shares=20/80与下面的Cpuset约束一起工作

代码语言:javascript
复制
 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)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34675795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档