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

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

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

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

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

答案1

我会遵循使用的方法系统:

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

答案2

“如果/sys/fs/cgroup/cgroup.controllers您的系统上存在,则您正在使用 v2,否则您正在使用 v1”

来源:https://rootlesscontaine.rs/getting-started/common/cgroup2/#checking-whether-cgroup-v2-is-already-enabled

答案3

如果 /sys/fs/cgroup/unified 位于 cgroup2 上并且 /sys/fs/cgroup/systemd/ 位于 cgroup 上,则两者都存在于我的 Linux 上。那么目前正在使用哪个?

相关内容