我有一个 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
,但这就是我陷入困境的地方。chipset
cgroup.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 时由于权限导致错误时,我总是使用此选项。如果错误仍然存在,我将检查权限。