Chapitre 18. Comprendre les cgroups
Vous pouvez utiliser la fonctionnalité du noyau control groups (cgroups
) pour fixer des limites, établir des priorités ou isoler les ressources matérielles des processus. Cela vous permet de contrôler granulairement l'utilisation des ressources des applications afin de les utiliser plus efficacement.
18.1. Comprendre les groupes de contrôle
Control groups est une fonctionnalité du noyau Linux qui vous permet d'organiser les processus en groupes hiérarchiquement ordonnés - cgroups
. La hiérarchie (arbre des groupes de contrôle) est définie en fournissant une structure au système de fichiers virtuel cgroups
, monté par défaut sur le répertoire /sys/fs/cgroup/
. Le gestionnaire de systèmes et de services systemd
utilise cgroups
pour organiser toutes les unités et tous les services qu'il régit. Vous pouvez également gérer manuellement les hiérarchies de cgroups
en créant et en supprimant des sous-répertoires dans le répertoire /sys/fs/cgroup/
.
Les contrôleurs de ressources (un composant du noyau) modifient alors le comportement des processus dans cgroups
en limitant, en priorisant ou en allouant les ressources du système (telles que le temps de l'unité centrale, la mémoire, la largeur de bande du réseau ou diverses combinaisons) de ces processus.
La valeur ajoutée de cgroups
est l'agrégation de processus qui permet de répartir les ressources matérielles entre les applications et les utilisateurs. Il est ainsi possible d'accroître l'efficacité globale, la stabilité et la sécurité de l'environnement des utilisateurs.
- Groupes de contrôle version 1
Control groups version 1 (
cgroups-v1
) fournissent une hiérarchie de contrôleurs par ressource. Cela signifie que chaque ressource, telle que l'unité centrale, la mémoire, les E/S, etc., possède sa propre hiérarchie de groupes de contrôle. Il est possible de combiner différentes hiérarchies de groupes de contrôle de manière à ce qu'un contrôleur puisse coordonner avec un autre la gestion de leurs ressources respectives. Toutefois, les deux contrôleurs peuvent appartenir à des hiérarchies de processus différentes, ce qui ne permet pas une bonne coordination.Les contrôleurs
cgroups-v1
ont été développés sur une longue période et, par conséquent, le comportement et la dénomination de leurs fichiers de contrôle ne sont pas uniformes.- Groupes de contrôle version 2
Les problèmes de coordination des contrôleurs, qui découlaient de la flexibilité de la hiérarchie, ont conduit au développement de control groups version 2.
Control groups version 2 (
cgroups-v2
) fournit une hiérarchie de groupe de contrôle unique par rapport à laquelle tous les contrôleurs de ressources sont montés.Le comportement et la dénomination des fichiers de contrôle sont cohérents d'un contrôleur à l'autre.
Par défaut, RHEL 9 monte et utilise cgroups-v2
.
Cette sous-section est basée sur une présentation de Devconf.cz 2019.[1]
Ressources supplémentaires
- Que sont les contrôleurs de ressources du noyau ?
-
cgroups(7)
page du manuel - cgroups-v1
- cgroups-v2