Plate-forme d’automatisation Dell : Conteneurs Java « OOMKilled » à partir du noyau 6.12

Summary: Les applications conteneurisées basées sur Java (telles que Keycloak) peuvent subir un arrêt inattendu en raison d’erreurs de mémoire insuffisante (OOM) lorsqu’elles sont exécutées sur le noyau Linux 6.12 ou une version ultérieure. Ce problème provient de modifications apportées à la façon dont le noyau expose les limites de mémoire « cgroup ». Ces modifications affectent la capacité de la machine virtuelle Java (JVM) à détecter et à respecter correctement les contraintes de mémoire des conteneurs. ...

Αυτό το άρθρο ισχύει για Αυτό το άρθρο δεν ισχύει για Αυτό το άρθρο δεν συνδέεται με κάποιο συγκεκριμένο προϊόν. Δεν προσδιορίζονται όλες οι εκδόσεις προϊόντων σε αυτό το άρθρο.

Symptoms

Pour NativeEdge Dell Automation Platform, keycloak c’est de plus en plus OOMKilled lors de l’initialisation. Par exemple, cela peut se produire lors de l’installation de Helm, lorsque le keycloak Pod bientôt disponible.

Logs à l’intérieur de keycloak Terminez par :

Appending additional Java properties to JAVA_OPTS
Changes detected in configuration. Updating the server image.
Updating the configuration and installing your custom providers, if any. Please wait.

La description du conteneur présente les éléments suivants :

State: Waiting
  Reason: CrashLoopBackOff
Last State: Terminated
  Reason: OOMKilled

Pour les autres environnements, il peut s’agir de :

  • Le système arrête les conteneurs Java (par exemple, keycloak, Kafka, Elasticsearch) avec un attribut OOMKilled statut.
  • La machine virtuelle Java signale des estimations inattendues de la taille du segment de mémoire, qui correspondent souvent à la mémoire hôte plutôt qu’aux limites du conteneur.
  • Balises de réglage de la mémoire telles que -XX:MaxRAMPercentage semblent inefficaces.
  • Les journaux peuvent afficher des messages tels que :
    • [debug][os,container] controller memory is not enabled
    • [debug][os,container] One or more required controllers disabled at kernel level

Cause

À partir de la version 6.12 du noyau Linux, le noyau n’est plus exposé cgroup Informations relatives au contrôleur par /proc/cgroups, sur lequel la JVM s’appuyait auparavant pour détecter les limites de mémoire des conteneurs. Cette modification rompt la détection des conteneurs dans les versions JVM concernées, ce qui suppose qu’ils ont accès à la mémoire hôte complète. Par conséquent, la JVM alloue plus de mémoire que le conteneur ne le permet, ce qui déclenche le OOMkiller.

Il y a plusieurs problèmes pour cela dans les projets open-source :

Ubuntu 24.04.3 n’utilise pas le noyau 6.12 par défaut. Mais certaines images sont déjà mises à jour avec les versions 6.12, 6.13 ou 6.14 (par exemple, dans la bibliothèque d’images AWS).

Resolution

Il existe deux solutions de contournement rapide possibles.

  • Augmentez temporairement les limites de mémoire du conteneur. Par exemple, voici les étapes à suivre pour procéder à l’installation de Dell Automation Platform, en doublant la limite de mémoire pour le keycloak conteneur.
Pour ce faire, vous devez exécuter la commande suivante (vérifiez votre espace de nommage orchestrator, par exemple, ci-dessous dapo est l’espace de nommage Orchestrator par défaut :
kubectl edit sts keycloak -n dapo
Trouvez les limites et les demandes de mémoire, et doublez-les. keycloak consomme beaucoup de mémoire lors de l’étape de préparation. Cette augmentation nous a permis de passer cette étape d’initialisation.
  • Définition explicite des limites de mémoire JVM

Utilisez les indicateurs de démarrage pour restreindre manuellement l’utilisation de la mémoire :

extraEnvVars:
  - name: JAVA_OPTS_KC_HEAP
    value: "-XX:MaxRAMPercentage=70 -XX:MinRAMPercentage=70 -XX:InitialRAMPercentage=50 -XX:MaxRAM=1G"

Επηρεαζόμενα προϊόντα

Dell Automation Platform, NativeEdge Solutions, Dell Automation Platform Components, NativeEdge
Ιδιότητες άρθρου
Article Number: 000369678
Article Type: Solution
Τελευταία τροποποίηση: 16 Οκτ 2025
Version:  2
Βρείτε απαντήσεις στις ερωτήσεις σας από άλλους χρήστες της Dell
Υπηρεσίες υποστήριξης
Ελέγξτε αν η συσκευή σας καλύπτεται από τις Υπηρεσίες υποστήριξης.