假设Ubuntu 22.04,RHEL9或者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
。