我需要运行80% cpu处理时间限制的不同VM上的停靠容器。同时,我不知道目标VM将有多少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。
是否有一种不为每个VM调整80% cpu限制的通用方法?字面上我需要说:“嘿,不管你有多少cpus/核心/线程等等,请让这个容器只使用80%"?有可能吗?如果没有,那麽,对每一位船民来说,有甚麽路可走呢?
发布于 2022-10-09 01:48:46
正如网站所说:控制cpu限制
-cpu-周期
指定CPU CFS调度器周期。
-cpu-配额
将CPU CFS配额强加于容器。容器限制在节流前的每cpu周期的微秒数。
如果您使用--cpu-quota
,您必须首先使用--cpu-period
--cpus
是一种更方便的选择
--cpus 1.6
这相当于设置--cpu-period="100000" and --cpu-quota="160000"
如果您想使用所有两个cpus,使用80%的cpus:
您可以使用设置:--cpu-period="80000" and --cpu-quota="200000"
如果您想在每个VM中运行相同的命令:
--cpu-period="80000" --cpu-quota="$(cat /proc/cpuinfo | grep processor | wc -l)0000"
https://stackoverflow.com/questions/73995877
复制相似问题