Dell Automation-plattform: Java-baserade behållare "OOMKilled" från och med Kernel 6.12
Zusammenfassung: Java-baserade containerbaserade program (till exempel Keycloak) kan drabbas av oväntad avslutning på grund av minnesfel (OOM) när de körs på Linux Kernel 6.12 eller senare. Det här problemet beror på ändringar i hur kerneln exponerar "cgroup"-minnesgränser. Dessa ändringar påverkar Java Virtual Machines (JVM) förmåga att identifiera och respektera begränsningar i behållarminnet korrekt. ...
Dieser Artikel gilt für
Dieser Artikel gilt nicht für
Dieser Artikel ist nicht an ein bestimmtes Produkt gebunden.
In diesem Artikel werden nicht alle Produktversionen aufgeführt.
Symptome
För NativeEdge Dell Automation Platform, keycloak håller på att få OOMKilled under initieringen. Det kan till exempel inträffa under roderinstallationen, när keycloak podden är på gång.
Loggar i keycloak Avsluta med:
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.
Beskrivningen av containern visar:
State: Waiting Reason: CrashLoopBackOff Last State: Terminated Reason: OOMKilled
För andra miljöer kan det vara:
- Systemet avslutar Java-behållare (till exempel
keycloak, Kafka, Elasticsearch) med enOOMKilledstatus. - JVM rapporterar oväntat höga uppskattningar av heapstorlek, som ofta matchar värdminne i stället för containergränser.
- Minnesjusteringsflaggor som
-XX:MaxRAMPercentageverkar ineffektiva. - Loggar kan visa meddelanden som:
[debug][os,container] controller memory is not enabled[debug][os,container] One or more required controllers disabled at kernel level
Ursache
Från och med Linux Kernel 6.12 exponerar kerneln inte längre
cgroup information om personuppgiftsansvarig genom att /proc/cgroups, som JVM tidigare förlitade sig på för att identifiera minnesgränser för containrar. Den här ändringen bryter containermedvetenheten i berörda JVM-versioner, vilket gör att de antar att de har åtkomst till det fullständiga värdminnet. Därför allokerar JVM mer minne än vad containern tillåter, vilket utlöser kernelns OOMkiller.
Det finns flera problem med detta i projekt med öppen källkod:
Ubuntu 24.04.3 använder inte 6.12-kärnan som standard. Men vissa bilder har redan uppdaterats med versionerna 6.12, 6.13, 6.14 (till exempel i AWS-bildbiblioteket).
Lösung
Det finns två möjliga snabba lösningar.
- Öka tillfälligt minnesgränserna för containern. Här är till exempel steg för att fortsätta med installationen av Dell Automation Platform och fördubbla minnesgränsen för
keycloakbehållare.
För att göra det måste du köra följande kommando (kontrollera orchestrator-namnområdet, till exempel nedan
dapo är standardnamnområdet för orkestrering:
kubectl edit sts keycloak -n dapo
Hitta minnesgränserna och förfrågningarna och dubbla dem.
keycloak Förbrukar mycket minne under förberedelsesteget. Den här ökningen gjorde det möjligt för oss att klara det här initieringssteget.
- Ange uttryckligen JVM-minnesgränser
Använd startflaggor för att manuellt begränsa minnesanvändningen:
extraEnvVars:
- name: JAVA_OPTS_KC_HEAP
value: "-XX:MaxRAMPercentage=70 -XX:MinRAMPercentage=70 -XX:InitialRAMPercentage=50 -XX:MaxRAM=1G"Betroffene Produkte
Dell Automation Platform, NativeEdge Solutions, Dell Automation Platform Components, NativeEdgeArtikeleigenschaften
Artikelnummer: 000369678
Artikeltyp: Solution
Zuletzt geändert: 16 Okt. 2025
Version: 2
Antworten auf Ihre Fragen erhalten Sie von anderen Dell NutzerInnen
Support Services
Prüfen Sie, ob Ihr Gerät durch Support Services abgedeckt ist.