cgroups v2 cpuset 不重启进程不生效

cgroups v2 cpuset 不重启进程不生效

我正在尝试使用 cgroup v2 中的 cpuset 控制器隔离一些延迟敏感进程的 CPU 核心。

我创建了一个群组lowlatency

mkdir /sys/fs/cgroup/lowlatency

并将其限制为仅使用1-7,9-15CPU:

echo "1-7,9-15" > /sys/fs/cgroup/lowlatency/cpuset.cpus

另外,我将此组作为root新的 cpuset 分区的一部分:

echo "root" > /sys/fs/cgroup/lowlatency/cpuset.cpus.partition

最后,根组不再使用独立的 CPU 1-7,9-15

cat /sys/fs/cgroup/cpuset.cpus.effective
0,8

问题在于根子组中的进程仍然使用错误的 CPU。

在此输入图像描述

CPU 亲和力掩码是正确的:

在此输入图像描述

杀死并重新启动后,它们被放置在正确的CPU上(0和8)。这是 cgroup 中的错误吗?我可以在不重新启动的情况下将这些进程移至新的 cpuset 吗?

我尝试使用cpuset.cpus.partition=roottaskset -cp 4 1079手动删除低延迟组,并且无需重新启动即可工作:

在此输入图像描述

相关内容