Docker有- CPU来限制容器的CPU使用.
根据文档的说法,
指定容器可以使用多少可用CPU资源。例如,如果主机有两个CPU,并且您设置了--CPU=“1.5”,则容器最多只能得到一个半CPU的保证。
但是,我运行机器:
# 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。
发布于 2020-02-10 15:59:25
默认情况下,容器中的进程在没有CPU限制的情况下运行,并且可以使用所有可用的处理器时间,与在Linux主机上运行的其他进程竞争。当设置--cpus时,这会将cgroup设置配置为限制容器内的进程只使用那么多的CPU时间。这是由内核管理的,但是底层硬件在/proc/cpuinfo中仍然可见。相反,您应该查看cgroup设置:
$ 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与无限容器形成对比:
$ 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
/ # https://stackoverflow.com/questions/60080921
复制相似问题