Dell Automatisierungsplattform: Java-basierte Container "OOMKilled" ab Kernel 6.12
Summary: Bei Java-basierten containerbasierten Anwendungen (z. B. Keycloak) kann es bei der Ausführung auf Linux-Kernel 6.12 oder höher zu einer unerwarteten Beendigung aufgrund von OOM-Fehlern (Out-of-Memory) kommen. Dieses Problem ist auf Änderungen in der Art und Weise zurückzuführen, wie der Kernel "cgroup"-Speicherbegrenzungen bereitstellt. Diese Änderungen wirken sich auf die Fähigkeit der Java Virtual Machine (JVM) aus, Speichereinschränkungen in Containern korrekt zu erkennen und zu berücksichtigen. ...
Acest articol se aplică pentru
Acest articol nu se aplică pentru
Acest articol nu este legat de un produs specific.
Acest articol nu acoperă toate versiunile de produs existente.
Symptoms
Für die NativeEdge Dell Automation Platform keycloak wird OOMKilled während der Initialisierung. Zum Beispiel kann es während der Installation des Helms passieren, wenn die keycloak Pod steht an.
Protokolle im keycloak Enden mit:
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.
Die Beschreibung des Containers zeigt:
State: Waiting Reason: CrashLoopBackOff Last State: Terminated Reason: OOMKilled
In anderen Umgebungen kann es folgende Umstände geben:
- Das System beendet Java-Container (z.B.
keycloak, Kafka, Elasticsearch) mit einemOOMKilledStatus. - JVM meldet unerwartet hohe Schätzungen der Heap-Größe, die oft eher dem Hostspeicher als den Containerlimits entsprechen.
- Speichertuning-Flags wie
-XX:MaxRAMPercentageunwirksam erscheinen. - Protokolle können Meldungen wie die folgenden anzeigen:
[debug][os,container] controller memory is not enabled[debug][os,container] One or more required controllers disabled at kernel level
Cause
Ab Linux Kernel 6.12 stellt der Kernel nicht mehr
cgroup Controller-Informationen durch /proc/cgroups, auf die sich die JVM zuvor verlassen hat, um Speicherbegrenzungen in Containern zu erkennen. Diese Änderung unterbricht das Bewusstsein für Container in betroffenen JVM-Versionen, wodurch diese davon ausgehen, dass sie Zugriff auf den gesamten Hostspeicher haben. Infolgedessen weist die JVM mehr Arbeitsspeicher zu, als der Container zulässt, und löst die OOMkiller.
In Open-Source-Projekten gibt es dafür mehrere Probleme:
Ubuntu 24.04.3 verwendet standardmäßig nicht den 6.12-Kernel. Einige Images werden jedoch bereits mit den Versionen 6.12, 6.13, 6.14 aktualisiert (z. B. in der AWS-Bildbibliothek).
Resolution
Es gibt zwei mögliche schnelle Problemumgehungen.
- Erhöhen Sie vorübergehend die Speicherlimits für den Container. Hier sind beispielsweise die Schritte zum Fortfahren mit der Installation der Dell Automation Platform, wobei das Speicherlimit für die
keycloakContainer.
Führen Sie dazu den folgenden Befehl aus (überprüfen Sie Ihren Orchestrator-Namespace, z. B. unten
dapo ist der standardmäßige Orchestrator-Namespace:
kubectl edit sts keycloak -n dapo
Ermitteln Sie die Speicherbegrenzungen und -anforderungen und verdoppeln Sie sie.
keycloak verbraucht viel Arbeitsspeicher im Vorbereitungsschritt. Diese Erhöhung ermöglichte es uns, diesen Initialisierungsschritt zu bestehen.
- Explizites Festlegen von JVM-Speicherlimits
Verwenden Sie Startmarkierungen, um die Arbeitsspeichernutzung manuell einzuschränken:
extraEnvVars:
- name: JAVA_OPTS_KC_HEAP
value: "-XX:MaxRAMPercentage=70 -XX:MinRAMPercentage=70 -XX:InitialRAMPercentage=50 -XX:MaxRAM=1G"Produse afectate
Dell Automation Platform, NativeEdge Solutions, Dell Automation Platform Components, NativeEdgeProprietăți articol
Article Number: 000369678
Article Type: Solution
Ultima modificare: 16 Oct 2025
Version: 2
Găsiți răspunsuri la întrebările dvs. de la alți utilizatori Dell
Servicii de asistență
Verificați dacă dispozitivul dvs. este acoperit de serviciile de asistență.