Skip to main content

Quotas de ressources cgroups v2 et moniteurs OOM

POUR AGENT IAChatGPTClaude

Mécanismes du noyau Linux (Control Groups v2) pour définir des limites matérielles strictes sur la RAM, le CPU, le disque et le nombre de processus (PIDs), afin de protéger l'hôte contre les cycles d'agents bloqués.

1. Vue d’ensemble du concept et problème systémique

Les agents IA autonomes sont, par nature, imprévisibles :

  • Un agent écrit une fonction récursive de parcours d’un graphe de fichiers, oublie la condition d’arrêt et déclenche une allocation mémoire infinie.
  • En 30 secondes, la consommation de RAM passe de 200 Mo à 32 Go.
  • Sur l’hôte, le mécanisme de protection Linux Out-Of-Memory (OOM Killer) se déclenche. Suivant un algorithme heuristique imprévisible, il ne tue pas seulement l’agent en boucle, mais aussi la base de données PostgreSQL principale et le serveur web.

Control Groups v2 (cgroups v2) constituent une cage d’ingénierie au niveau du noyau Linux. Ils permettent d’assigner des limites strictes au processus de l’agent : même si ce dernier tente d’allouer un téraoctet de mémoire, le noyau forcera la restriction à la limite allouée et terminera proprement uniquement ce processus isolé spécifique.

2. Taxonomie architecturale et modèle mental

┌─────────────────────────────────────────────────────────────┐
│                 HIÉRARCHIE UNIFIÉE CGROUPS V2               │
├─────────────────────────────────────────────────────────────┤
│ GROUPE DE CONTRÔLE RACINE (/sys/fs/cgroup)                  │
│ ├── system.slice (Services critiques de l'hôte : SSH,       │
│ │   Systemd, UFW)                                           │
│ │   ➔ Mémoire garantie & Priorité CPU élevée                │
│ └── agent-sandbox.slice (Environnement isolé de l'agent)    │
│     ├── memory.max = 1536M (Limite mémoire stricte)         │
│     ├── memory.high = 1200M (Limite souple : throttling)    │
│     ├── cpu.max = 100000 100000 (Max. 1 cœur complet)       │
│     ├── pids.max = 150 (Protection contre les Fork Bombs)   │
│     └── io.weight = 100 (Priorité d'écriture SSD faible)    │
└─────────────────────────────────────────────────────────────┘

3. Scénarios d’ingénierie pratiques en production

01. Protection du serveur hôte via systemd-run

Exécution d’un script agent risqué directement dans un groupe de contraintes dédié, sans conteneur :

systemd-run --scope -p MemoryMax=1G -p CPUQuota=50% -p TasksMax=50 python agent_worker.py

Si le script dépasse 1 Go de RAM, le noyau redémarrera instantanément uniquement le service agent_worker.py, sans toucher à aucun autre processus sur le serveur.

02. Utilisation de PSI pour un contrôle adaptatif de la charge

Un démon de monitoring lit /proc/pressure/memory. Si l’indicateur de pression dépasse 20 %, le système suspend automatiquement l’acceptation de nouvelles tâches pour les agents jusqu’à ce que les calculs en cours soient terminés.

4. Pièges courants, erreurs typiques et sécurité

  • Boucles OOM (Redémarrages infinis) : Si la limite mémoire est fixée trop basse (par exemple, 256 Mo pour une application Node.js), l’agent plantera et redémarrera toutes les 10 secondes, saturant les files d’attente.
  • Swap désactivé : En l’absence totale de fichier Swap sur le serveur, un pic soudain de mémoire provoque un SIGKILL immédiat. Il est recommandé de disposer d’une petite zone zram ou d’un swapfile sur un NVMe rapide pour atténuer les pics de charge.

5. Conclusion stratégique pour l’ingénieur de 2026

cgroups v2 est le fondement de la stabilité de toute infrastructure interagissant avec du code autonome. L’établissement de quotas matériels stricts garantit qu’aucune erreur ni hallucination de l’IA ne pourra compromettre la disponibilité du serveur hôte.

/ Questions fréquentesSchema.org FAQPage

FAQ: Quotas de ressources cgroups v2 et moniteurs OOM

cgroups v1 utilisait des hiérarchies séparées et non liées pour la mémoire, le processeur et les périphériques blocs, ce qui entraînait des bugs et rendait impossible un throttling précis des E/S. cgroups v2 utilise une hiérarchie unifiée unique des processus (Unified Hierarchy) et prend en charge les informations de pression de mémoire (Pressure Stall Information - PSI).
/ Liens internes
Tous les termes