gpt4 book ai didi

docker - 在 Docker 中混合 cpu-shares 和 cpuset-cpus

转载 作者:行者123 更新时间:2023-12-02 10:53:58 25 4
gpt4 key购买 nike

我想使用以下资源分配来运行两个容器:

  • 容器“C1”:保留 cpu1,共享 cpu2(具有 20 个 cpu 份额)
  • 容器“C2”:保留 cpu3,共享 cpu2(具有 80 个 cpu 份额)

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

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 按预期占用 cpu1 的 100%,但占用 cpu2 的 50%(而不是 20%),C2 按预期占用 cpu3 的 100% 和 cpu2 的 50%(而不是 80%)。

看起来 --cpu-shares 选项被忽略了。有没有办法获得我正在寻找的行为?

最佳答案

docker run提到该参数为:

--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 constraints :

 docker run -ti --cpuset-cpus="0,1" C1 # instead of 1,2
docker run -ti --cpuset-cpus="3,4" C2 # instead of 2,3

(这些值为 validated/checked only since docker 1.9.1 with PR 16159 )

注意:还有CPU quota constraint :

The --cpu-quota flag limits the container’s CPU usage. The default 0 value allows the container to take 100% of a CPU resource (1 CPU).

关于docker - 在 Docker 中混合 cpu-shares 和 cpuset-cpus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34675795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com