Dell Automation-plattform: Java-baserade behållare "OOMKilled" från och med Kernel 6.12
Zhrnutie: 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. ...
Tento článok sa vzťahuje na
Tento článok sa nevzťahuje na
Tento článok nie je viazaný na žiadny konkrétny produkt.
V tomto článku nie sú uvedené všetky verzie produktov.
Symptómy
För NativeEdge Dell Automation Platform 1.0, 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
Príčina
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).
Riešenie
Det här problemet åtgärdas med hjälp av Dell Automated Platform 1.1 och senare
Om problemet uppstår på Dell Automated Platform 1.0 finns det två 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"Dotknuté produkty
Dell Automation Platform, NativeEdge Solutions, Dell Automation Platform Components, NativeEdgeVlastnosti článku
Číslo článku: 000369678
Typ článku: Solution
Dátum poslednej úpravy: 28 apr 2026
Verzia: 3
Nájdite odpovede na svoje otázky od ostatných používateľov spoločnosti Dell
Služby podpory
Skontrolujte, či sa na vaše zariadenie vzťahujú služby podpory.