如何检查系统是否正在使用 cgroupv1?

Wan*_*ang 10 cgroups

docker只能使用cgroupv1,但fedora默认只使用cgroupv2。如何检查系统是否兼容 cgroupv1?

到目前为止,这个问题的答案只能确定是否安装了cgroupv2。但无法确定unified_cgroup_hierarchy设置为0还是1。有没有统一的方法来确定系统是否与cgroupv1兼容,无论是否安装了cgroupv2?

到目前为止我用来mount -l检查是否有cgroup2 on /sys/fs/cgroup. 如果有,则表示仅限 cgroupv2。这种方法是否普遍适用于所有发行版?到目前为止我只在 Fedora 和 ubuntu 上进行了测试。如果不是,是否有通用的方法来确定这一点?

Ste*_*itt 11

我会遵循systemd使用的方法:

\n
    \n
  • 如果/sys/fs/cgroup存在并且位于cgroup2文件系统上,则系统正在以完全统一的层次结构运行;
  • \n
  • 如果/sys/fs/cgroup存在并且位于tmpfs文件系统上,\n
      \n
    • 如果 或/sys/fs/cgroup/unified存在/sys/fs/cgroup/systemd并且开启cgroup2文件系统上,则系统仅对 systemd 控制器使用统一的层次结构;
    • \n
    • 如果/sys/fs/cgroup/systemd存在并且位于cgroup文件系统上(或者,作为后备,如果它存在并且不在cgroup2文件系统上\xe2\x80\x99t),则系统正在使用旧层次结构。
    • \n
    \n
  • \n
\n