comment vérifier si le système utilise cgroupv1?

Nov 03 2020

docker ne peut utiliser que cgroupv1, mais fedora par défaut n'utilise que cgroupv2. Comment vérifier si le système est compatible avec cgroupv1?

Jusqu'à présent, la réponse à cette question ne peut déterminer que si cgroupv2 est installé. Mais il ne peut pas déterminer s'il est unified_cgroup_hierarchydéfini sur 0 ou 1. Existe-t-il un moyen uniforme de déterminer si le système est compatible avec cgroupv1, que cgroupv2 soit installé ou non?

Jusqu'à présent, j'utilise mount -lpour vérifier s'il y en a cgroup2 on /sys/fs/cgroup. Si c'est le cas, cela signifie uniquement cgroupv2. Cette méthode est-elle universellement applicable dans toutes les distributions? Jusqu'à présent, je n'ai testé que sur Fedora et ubuntu. Sinon, existe-t-il un moyen universel de déterminer cela?

Réponses

1 StephenKitt Nov 03 2020 at 23:07

Je suivrais l'approche utilisée par systemd :

  • s'il /sys/fs/cgroupexiste et se trouve sur un cgroup2système de fichiers, le système fonctionne avec une hiérarchie unifiée complète;
  • s'il /sys/fs/cgroupexiste et se trouve sur un tmpfssystème de fichiers,
    • si l'un /sys/fs/cgroup/unifiedou l' autre /sys/fs/cgroup/systemdexiste et se trouve sur cgroup2des systèmes de fichiers, le système utilise une hiérarchie unifiée pour le contrôleur systemd uniquement;
    • s'il /sys/fs/cgroup/systemdexiste et se trouve sur un cgroupsystème de fichiers (ou, comme solution de secours, s'il existe et n'est pas sur un cgroup2système de fichiers), le système utilise une hiérarchie héritée.