Les modèles d’IA conteneurisés peuvent redémarrer malgré la mémoire libre de l’hôte, car les limites de leur cgroup, de leur accélérateur ou de leur superviseur sont plus étroites que la vue globale de la RAM de la machine.
Le tableau de bord d’un serveur domestique peut afficher plusieurs gigaoctets libres tandis qu’un conteneur d’inférence disparaît et réapparaît avec un nouvel ID de processus. Le conteneur peut atteindre son propre plafond mémoire, échouer à une vérification d’état pendant la récupération, épuiser la mémoire du GPU ou se terminer après une erreur d’allocation. Une politique de redémarrage transforme alors cette défaillance locale en redémarrage apparemment spontané du modèle.
Le conteneur possède une limite mémoire différente de celle de l’hôte
Les groupes de contrôle Linux comptabilisent et limitent la mémoire pour un groupe de processus donné. Un conteneur peut atteindre memory.max ou une limite d’exécution alors que de la RAM reste disponible ailleurs sur l’hôte pour le noyau. La quantité globale de mémoire libre de la machine ne décrit donc pas la limite d’allocation imposée à ce service.
Une explication détaillée de la comptabilisation de la mémoire des cgroups distingue la mémoire anonyme, les fichiers mappés et le cache imputés à un groupe de contrôle. Cette comptabilisation montre pourquoi les poids chargés depuis le disque, les tampons temporaires du modèle et le cache de pages peuvent consommer le budget d’un conteneur même lorsqu’une simple vue de la mémoire RSS des processus semble plus faible.
Les limites peuvent également être imbriquées : un conteneur de modèle peut se trouver dans un service Compose, une tranche systemd, une machine virtuelle ou un groupe d’orchestration. La limite active la plus étroite peut déclencher la récupération mémoire ou un arrêt pour manque de mémoire avant que l’hôte physique n’approche de l’épuisement global.
La pression mémoire peut bloquer les vérifications d’état avant un arrêt OOM
À mesure que la limite est approchée, le noyau peut récupérer du cache, analyser la mémoire et ralentir les allocations. Le modèle peut rester actif tout en répondant trop lentement à une sonde d’état, ce qui pousse le superviseur à le terminer et à lancer un remplacement sans enregistrer d’arrêt OOM au niveau du conteneur.
Le framework d’informations sur les blocages liés à la pression des ressources mesure le temps perdu lorsque les tâches attendent en raison de la pression exercée sur la mémoire, le processeur ou les entrées-sorties, plutôt que de se baser uniquement sur l’utilisation. Ces informations expliquent pourquoi les octets libres et la réactivité du service peuvent diverger pendant une récupération mémoire intensive.
Le chargement d’une IA crée des pics irréguliers : la désérialisation peut conserver temporairement les poids compressés et décompressés, la quantification peut allouer un espace de travail temporaire et les travailleurs parallèles peuvent dupliquer des tampons. L’empreinte stable après le chargement sous-estime donc le pic bref qui chevauche la sonde ayant échoué.
Une défaillance du GPU et la politique de redémarrage peuvent être confondues avec un OOM de l’hôte
Les métriques de la RAM de l’hôte excluent normalement la VRAM dédiée. Un modèle peut échouer lors de l’allocation sur le GPU parce que les poids, le cache KV, les noyaux et une autre charge occupent l’accélérateur, puis se terminer avec une erreur applicative tandis que l’hôte continue d’indiquer une grande quantité de mémoire système disponible.
Les recommandations de gestion des ressources distinguent les limites mémoire des conteneurs d’un manque de mémoire à l’échelle du nœud et expliquent que les limites sont appliquées par l’environnement d’exécution et le noyau, et non par l’indicateur de mémoire libre du tableau de bord. Le redémarrage est alors régi par la politique de redémarrage de la charge de travail, et non par la mesure de la mémoire elle-même.
La limite d’analyse consiste à supposer que chaque nouvel ID de conteneur prouve un événement OOM. Les mises à jour d’image, les délais d’expiration d’un watchdog, les redéploiements manuels, les réinitialisations de périphérique et les plantages de l’application produisent le même symptôme apparent. Le motif de sortie, le journal du noyau, les événements du cgroup et les erreurs du GPU doivent concorder avant d’attribuer la cause à la mémoire.
Corrélez le motif de sortie avec chaque limite mémoire
Reproduisez le chargement d’un modèle tout en enregistrant, sur une même horloge, memory.current, memory.max et memory.events du conteneur, la mémoire RSS et les fichiers mappés des processus, MemAvailable de l’hôte, les totaux de pression, la mémoire du GPU, la latence de la sonde d’état, le code de sortie du processus et le nombre de redémarrages du superviseur.
Utilisez la concurrence entre conteneurs comme contexte, puis répétez le test avec le même modèle sous une limite de conteneur plus élevée, une politique de redémarrage désactivée et aucune charge concurrente sur l’accélérateur. Ne modifiez qu’une seule limite par exécution afin qu’un redémarrage réussi ne masque pas la défaillance initiale.
Classez l’événement comme un OOM du cgroup, un OOM global, un échec d’allocation du GPU, une terminaison par vérification d’état ou une sortie de l’application avant de modifier les limites. Si le pic est légitime, conservez une marge de sécurité ; si une sonde tue un modèle en récupération mais sain, ajustez le calendrier de la sonde sans masquer les blocages réels.
Centre Tech & IA
Plus à lire

Quel est l’effet de la réduction de la fréquence d’échantillonnage des séries temporelles sur la détection des anomalies dans les maisons intelligentes ?
Découvrez comment la largeur des intervalles, l’agrégation, l’anticrénelage, les données manquantes, la durée des événements et la rétention multiscalaire modifient le rappel des anomalies...

Comment une grille d’occupation combine-t-elle de faibles signaux domotiques ?
Découvrez comment les cellules spatiales, les modèles de capteurs, les mises à jour en log-odds, la décroissance, les éléments de preuve corrélés et les...

Quel est l’effet de la normalisation photométrique sur le regroupement de visages privés ?
Découvrez comment la correction de l’éclairage modifie les recadrages de visages, les représentations vectorielles, les distances entre clusters, les seuils, la sur-normalisation et l’évaluation...

