是否可以以类似于内存限制的方式来管理对CPU内核的访问?
特别是,我需要能够动态创建和销毁cgroup,以将一组特定的进程限制为所需数量的CPU内核。
我无法使用CPU集,因为这需要在多插槽(最多NUMA)计算机上工作,并且如果我将进程固定在内核上,由于内核碎片(进程从几分钟到几个月不等),我会很快遇到巨大的性能问题。在运行时)。
第二个复杂之处是,这需要与cgroup之外的进程很好地配合使用。
例如,我可能有以下情况:
1 process limited to 2 cores and 4GB RAM
2 processes unlimited, but should have guaranteed access to the remainder of the machine
这两个选项可用于限制cgroup可用的CPU内核数量:
cpu.cfs_period_us
cpu.cfs_quota_us
cfs_period_us
定义了强制执行的频率,cfs_quota_us
定义us
了cgroup在每个期间应接收的数量。因此,如果您指定cfs_quota_us
为N倍,cfs_period_us
则cgroup的数量将接收N个内核。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句