Rechercher

18.2. Que sont les contrôleurs de ressources du noyau ?

download PDF

La fonctionnalité des groupes de contrôle est activée par les contrôleurs de ressources du noyau. RHEL 9 prend en charge différents contrôleurs pour control groups version 1 (cgroups-v1) et control groups version 2 (cgroups-v2).

Un contrôleur de ressources, également appelé sous-système de groupe de contrôle, est un sous-système du noyau qui représente une ressource unique, telle que le temps de l'unité centrale, la mémoire, la bande passante du réseau ou les entrées/sorties du disque. Le noyau Linux fournit une gamme de contrôleurs de ressources qui sont montés automatiquement par le système systemd et le gestionnaire de services. La liste des contrôleurs de ressources actuellement montés se trouve dans le fichier /proc/cgroups.

Les contrôleurs suivants sont disponibles pour cgroups-v1:

  • blkio - peut fixer des limites à l'accès aux entrées/sorties vers et depuis les périphériques de bloc.
  • cpu - peut ajuster les paramètres de l'ordonnanceur Completely Fair Scheduler (CFS) pour les tâches du groupe de contrôle. Il est monté avec le contrôleur cpuacct sur le même support.
  • cpuacct - crée des rapports automatiques sur les ressources CPU utilisées par les tâches d'un groupe de contrôle. Il est monté avec le contrôleur cpu sur le même support.
  • cpuset - peut être utilisé pour limiter l'exécution des tâches du groupe de contrôle à un sous-ensemble spécifié de CPU et pour ordonner aux tâches d'utiliser la mémoire uniquement sur les nœuds de mémoire spécifiés.
  • devices - peut contrôler l'accès aux appareils pour les tâches d'un groupe de contrôle.
  • freezer - peut être utilisé pour suspendre ou reprendre des tâches dans un groupe de contrôle.
  • memory - peut être utilisé pour fixer des limites à l'utilisation de la mémoire par les tâches d'un groupe de contrôle et génère des rapports automatiques sur les ressources mémoire utilisées par ces tâches.
  • net_cls - marque les paquets réseau avec un identifiant de classe (classid) qui permet au contrôleur de trafic Linux (la commande tc ) d'identifier les paquets qui proviennent d'une tâche de groupe de contrôle particulière. Un sous-système de net_cls, net_filter (iptables), peut également utiliser cette étiquette pour effectuer des actions sur ces paquets. Le net_filter marque les sockets réseau avec un identifiant de pare-feu (fwid) qui permet au pare-feu Linux (via la commande iptables ) d'identifier les paquets provenant d'une tâche particulière du groupe de contrôle.
  • net_prio - définit la priorité du trafic réseau.
  • pids - peut fixer des limites pour un certain nombre de processus et leurs enfants dans un groupe de contrôle.
  • perf_event - peut regrouper les tâches à surveiller par l'utilitaire de surveillance des performances et de création de rapports perf.
  • rdma - peut fixer des limites aux ressources spécifiques Remote Direct Memory Access/InfiniBand dans un groupe de contrôle.
  • hugetlb - peut être utilisé pour limiter l'utilisation de pages de mémoire virtuelle de grande taille par les tâches d'un groupe de contrôle.

Les contrôleurs suivants sont disponibles pour cgroups-v2:

  • io - Un suivi de blkio of cgroups-v1.
  • memory - Un suivi de memory of cgroups-v1.
  • pids - Identique à pids dans cgroups-v1.
  • rdma - Identique à rdma dans cgroups-v1.
  • cpu - Un suivi de cpu et cpuacct de cgroups-v1.
  • cpuset - Ne prend en charge que la fonctionnalité de base (cpus{,.effective}, mems{,.effective}) avec une nouvelle fonction de partition.
  • perf_event - La prise en charge est inhérente, il n'y a pas de fichier de contrôle explicite. Vous pouvez spécifier une adresse v2 cgroup en tant que paramètre de la commande perf qui établira le profil de toutes les tâches contenues dans cette adresse cgroup.
Important

Un contrôleur de ressources peut être utilisé soit dans une hiérarchie cgroups-v1, soit dans une hiérarchie cgroups-v2, mais pas simultanément dans les deux.

Ressources supplémentaires

  • cgroups(7) page du manuel
  • Documentation dans le répertoire /usr/share/doc/kernel-doc-<kernel_version>/Documentation/cgroups-v1/ (après avoir installé le paquetage kernel-doc ).
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.