首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker -- cpu使用cpu核心或处理器来限制使用?

Docker -- cpu使用cpu核心或处理器来限制使用?
EN

Stack Overflow用户
提问于 2020-02-05 17:15:16
回答 1查看 1.8K关注 0票数 2

Docker有- CPU来限制容器的CPU使用.

根据文档的说法,

指定容器可以使用多少可用CPU资源。例如,如果主机有两个CPU,并且您设置了--CPU=“1.5”,则容器最多只能得到一个半CPU的保证。

但是,我运行机器:

代码语言:javascript
复制
# cat /proc/cpuinfo | grep "cpu cores" | tail -n 1
8
# cat /proc/cpuinfo | grep "processor" | wc -l
16

如果我想对容器设置50%的限制,那么设置--cpu=8有意义吗?还是百分之百?

在Docker文档和cgroup手册中,我都没有看到明确的答案。

我看到了物理cpu和虚拟cpu以及内核这里之间的差异的详细解释,但它没有说明我应该使用什么来限制Docker。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-10 15:59:25

默认情况下,容器中的进程在没有CPU限制的情况下运行,并且可以使用所有可用的处理器时间,与在Linux主机上运行的其他进程竞争。当设置--cpus时,这会将cgroup设置配置为限制容器内的进程只使用那么多的CPU时间。这是由内核管理的,但是底层硬件在/proc/cpuinfo中仍然可见。相反,您应该查看cgroup设置:

代码语言:javascript
复制
$ docker run -it --rm --cpus 0.75 busybox sh
/proc # cat /sys/fs/cgroup/cpu/cpu.cfs_quota_us
75000
/proc # cat /sys/fs/cgroup/cpu/cpu.cfs_period_us
100000

与无限容器形成对比:

代码语言:javascript
复制
$ docker run -it --rm busybox sh
/ # cat /sys/fs/cgroup/cpu/cpu.cfs_quota_us
-1
/ # cat /sys/fs/cgroup/cpu/cpu.cfs_period_us
100000
/ # 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60080921

复制
相关文章

相似问题

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