无法在 Linux 上挂载 cgroup v1 cpu 子系统

无法在 Linux 上挂载 cgroup v1 cpu 子系统

假设Ubuntu 22.04RHEL9或者Centos 9 流我使用启动选项关闭了 cgroup v2 systemd.unified_cgroup_hierarchy=0。因此我只有 cgroup v1,我想挂载cpu子系统。问题是我可以对 、 等子系统执行此操作cpu,cpuacct。但对子系统blkio不起作用。cpu

Device or resource busy安装子系统时出错。cpu问题是什么?是什么原因cpu,cpuacct?我到处搜索,但找不到它。

# mount -t cgroup -o cpu none tmp0
mount: /root/tmp0: none already mounted on <... does not matter really ...>.

的输出cat /proc/cgroups

#subsys_name    hierarchy       num_cgroups     enabled
cpuset  4       1       1
cpu     3       2       1
cpuacct 3       2       1
blkio   10      2       1
...

以下是内容/sys/fs/cgroup

在此处输入图片描述

以下是安装cgroup*点:

在此处输入图片描述

答案1

答案如下(https://man7.org/linux/man-pages/man7/cgroups.7.html):

无法针对多个 cgroup 层次结构安装同一控制器。例如,无法针对一个层次结构安装 cpu 和 cpuacct 控制器,也无法针对另一个层次结构单独安装 cpu 控制器。可以使用完全相同的一组共同安装的控制器创建多个安装。但是,在这种情况下,结果只是多个安装点提供同一层次结构的视图。\

在我测试过的系统上,有。据我所知,如果其中已经有一些子文件夹(子层次结构)被某些进程使用,/sys/fs/cgroup/cpu,cpuacct即使卸载它也可能不够。/sys/fs/cgroup/cpu,cpuacct

就我的情况而言,卸载就足够了/sys/fs/cgroup/cpu,cpuacct,但我能够用-o cpu而不是 来挂载-o cpu,cpuacct

相关内容