无法附加到 cgroup v2 cgroup.subtree_controller

无法附加到 cgroup v2 cgroup.subtree_controller

我有一个 Tinker Board 2s(如树莓派),在内核 4.4.194 上运行 debian。

我通过按预期cgroups v2添加到文件systemd.unified_cgroup_hierarchy=1中来启用。/boot/cmdline.txt

的结果ls /sys/fs/cgroup/是:

cgroup.controllers cgroup.procs cgroup.subtree_control init.scope system.slice user.slice这似乎是正确的。

然而,根据这个指导,现在我还需要添加和cpu,但这就是我陷入困境的地方。chipsetcgroup.subtree_control

echo '+cpu' >> /sys/fs/cgroup/cgroup.subtree_control
echo '+cpuset' >> /sys/fs/cgroup/cgroup.subtree_control

这些结果导致权限被拒绝错误...即使我 sudo echo 它,它也会导致同样的结果。

ls -l for /sys/fs/cgroup显示:

-r--r--r--  1 root root 0 Dec  2 06:52 cgroup.controllers
-rw-r--r--  1 root root 0 Dec  2 06:29 cgroup.procs
-rw-r--r--  1 root root 0 Dec  2 06:53 cgroup.subtree_control
drwxr-xr-x  2 root root 0 Dec  2 06:19 init.scope
drwxr-xr-x 53 root root 0 Dec  2 06:33 system.slice
drwxr-xr-x  4 root root 0 Dec  2 06:19 user.slice

我不知道该将谁的 CPU 和芯片组添加到 cgroup v2 中......

我的目的是安装 kubernetes 并将板连接为集群。但 kubeadm 失败,说找不到 CPU 和 CPUSET。这个问题让我想到了 cgroups v2。

答案1

尽管 @bgfvdu3w 给出了答案和解决方案,但一种替代方法是:打开终端窗口并简单地编写:

sudo -s<<START
echo '+cpu' >> /sys/fs/cgroup/cgroup.subtree_control
echo '+cpuset' >> /sys/fs/cgroup/cgroup.subtree_control
START

写入开始标记(第一个 START 字)后,终端等待新的输入,命令将在超级用户的权限下执行,并在终端提示行的开头放置“>”字符。当您写完命令并在结束标记(第二个起始字)后输入时,终端将返回到正常提示状态,并以超级用户的权限应用所有命令。

当使用 sudo 时由于权限导致错误时,我总是使用此选项。如果错误仍然存​​在,我将检查权限。

相关内容