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”。
答案3
如果 /sys/fs/cgroup/unified 位于 cgroup2 上并且 /sys/fs/cgroup/systemd/ 位于 cgroup 上,则两者都存在于我的 Linux 上。那么目前正在使用哪个?