在cgroup和外界之间分配CPU内核

西蒙·托斯(Simon Toth)

是否可以以类似于内存限制的方式来管理对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

西蒙·托斯(Simon Toth)

这两个选项可用于限制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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章