gpt4 book ai didi

docker - Docker --cpus使用cpu内核或处理器来限制使用率吗?

转载 作者:行者123 更新时间:2023-12-02 21:02:02 24 4
gpt4 key购买 nike

Docker具有--cpus来限制容器的CPU使用率。

根据docs,它将

Specify how much of the available CPU resources a container can use. For instance, if the host machine has two CPUs and you set --cpus="1.5", the container is guaranteed at most one and a half of the CPUs.



但是,我运行机器:
# cat /proc/cpuinfo | grep "cpu cores" | tail -n 1
8
# cat /proc/cpuinfo | grep "processor" | wc -l
16

如果要对容器设置50%的限制,设置--cpus = 8是否有意义?还是100%?

我在Docker文档和cgroups手册中都没有找到明确的答案。

我看到了有关物理cpu和虚拟cpu之间以及内核 here之间差异的详细说明,但它并没有阐明我应如何使用Docker来限制自己。

最佳答案

默认情况下,容器中的进程不受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
/ #

关于docker - Docker --cpus使用cpu内核或处理器来限制使用率吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60080921/

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