Cgroups

如何檢查系統是否使用 cgroupv1?

  • November 3, 2020

docker只能使用cgroupv1,而fedora預設只能使用cgroupv2。如何檢查系統是否與 cgroupv1 兼容?

到目前為止,這個問題的答案只能確定是否安裝了 cgroupv2。但它無法確定是否unified_cgroup_hierarchy設置為0或1。是否有任何統一的方法來確定係統是否與cgroupv1兼容,無論是否安裝了cgroupv2?

到目前為止,我mount -l用來檢查是否有cgroup2 on /sys/fs/cgroup. 如果有,那意味著只有 cgroupv2。這種方法是否普遍適用於所有發行版?到目前為止,我只在 Fedora 和 ubuntu 上進行了測試。如果沒有,是否有一種通用的方法來確定這一點?

我會遵循systemd使用的方法:

  • 如果/sys/fs/cgroup存在並且在cgroup2文件系統上,則係統以完全統一的層次結構執行;

  • 如果/sys/fs/cgroup存在並且在tmpfs文件系統上,

    • 如果其中一個/sys/fs/cgroup/unified/sys/fs/cgroup/systemd存在並且位於cgroup2文件系統上,則係統僅對 systemd 控制器使用統一的層次結構;
    • 如果/sys/fs/cgroup/systemd存在並且在cgroup文件系統上(或者,作為備份,如果它存在並且不在cgroup2文件系統上),則係統正在使用舊層次結構。

引用自:https://unix.stackexchange.com/questions/617764