Docker限制任意数量cpu的cpu使用



我需要在不同的VM上运行docker容器,cpu处理时间限制为80%。同时,我不知道目标虚拟机将有多少cpu/内核/线程。Docker提供了一些控制cpu限制的参数。最适合我的是cpu-quota。但看起来是每个cpu。例如,我有以下配置的VM:

CPU(s):              2
On-line CPU(s) list: 0,1
Thread(s) per core:  1
Core(s) per socket:  2
Socket(s):           1
NUMA node(s):        1

当我将cpu-quota设置为80000(即10K的80%(时,它只使用一个cpu,而不是两个可用的cpu。

有没有办法以一种常见的方式设置80%的cpu限制,而不对每个VM进行调整?从字面上讲,我需要说";嘿,不管你有多少cpu/内核/线程等,请让这个容器只使用80%"?有可能吗?如果没有,该怎么办,分别为每个虚拟机设置限制?

正如网站所说:控制cpu限制

--cpu周期表示

指定CPU CFS调度程序周期

--cpu配额表示

对容器强制执行CPU CFS配额。在抑制之前,容器被限制为每个cpu周期的微秒数

如果使用--cpu-quota,则必须首先使用--cpu-period

--cpus是一种更方便的替代

--cpus 1.6

这相当于设置--cpu-period="100000" and --cpu-quota="160000"

如果你想使用所有2个cpu,它使用80%:

可以使用设置:--cpu-period="80000" and --cpu-quota="200000"

如果您想在每个虚拟机中运行相同的命令:

--cpu-period="80000" --cpu-quota="$(cat /proc/cpuinfo | grep processor | wc -l)0000"

最新更新