我有一个4核CPU,我想将50%的CPU资源分配给一个docker容器.
阅读docker-run手册和config.go源代码后.
我还是不知道如何使用该-c, --cpu-shares=0选项.
docker run -c 0.5 -i -t ubuntu /bin/bash
Run Code Online (Sandbox Code Playgroud)
要么
docker run -c 2 -i -t ubuntu /bin/bash
Run Code Online (Sandbox Code Playgroud)
Bry*_*yan 26
cpu-shares是一个'相对权重',相对于默认设置1024,所以如果你有两个容器在同一个核心上运行,你可以通过调整它来给它们50-50或80-20或任何你想要的CPU数字.这是一个整数.
您无法使用此标志给出总体限制,但您可以使用--cpuset 此处提到的限制容器运行的CPU集.
数字1024位于Cgroups文档中.
Marek Goldmann的博客文章解释了Docker中的资源管理.
另请参见为Docker容器设置CPU的绝对限制,它表示可以使用lxc(较旧的Docker实现)但不能使用libcontainer(当前的Docker实现).
use*_*322 13
这取决于环境,所以没有直接的答案,但继续阅读.
从docker run --help命令:
-c, --cpu-shares=0 CPU shares (relative weight)
Run Code Online (Sandbox Code Playgroud)
由于Docker基于cgroups.CPU将分布在正在运行的容器中.默认情况下,该值为1024.
cat /sys/fs/cgroup/cpu/docker/cpu.shares
1024
Run Code Online (Sandbox Code Playgroud)
因此,如果我们有2个容器,一个用于数据库,另一个用于Web服务器
sudo docker run -c 614 -dit --name db postgres /postgres.sh
sudo docker run -c 410 -dit --name web nginx /nginx.sh
Run Code Online (Sandbox Code Playgroud)
将db容器的60%(614是1024的60%)和web容器的40%.
进一步阅读请参阅:
cpuset选项:--cpuset="" CPUs in which to allow execution (0-3, 0,1)| 归档时间: |
|
| 查看次数: |
60251 次 |
| 最近记录: |