Automatizační platforma Dell: Kontejnery založené na Javě "OOMKilled" počínaje jádrem 6.12
Zusammenfassung: Kontejnerizované aplikace založené na jazyce Java (například Keycloak) mohou při spuštění v jádře Linux Kernel 6.12 nebo novějším zaznamenat neočekávané ukončení kvůli chybám OOM (nedostatek paměti). Tento problém pramení ze změn v tom, jak jádro zveřejňuje limity paměti "cgroup". Tyto změny mají vliv na schopnost prostředí Java Virtual Machine (JVM) správně detekovat a respektovat omezení paměti kontejneru. ...
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
V případě automatizační platformy Dell NativeEdge keycloak je stále více OOMKilled během inicializace. Může k tomu dojít například během instalace kormidla, kdy keycloak Pod se blíží.
Protokoly uvnitř keycloak Ukončit:
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.
Popis kontejneru zobrazuje:
State: Waiting Reason: CrashLoopBackOff Last State: Terminated Reason: OOMKilled
V jiných prostředích to může být:
- Systém ukončí kontejnery Java (například
keycloak, Kafka, Elasticsearch) sOOMKilledstav. - Prostředí JVM hlásí neočekávaně vysoké odhady velikosti haldy, které často odpovídají paměti hostitele, nikoli limitům kontejnerů.
- Příznaky ladění paměti jako
-XX:MaxRAMPercentagese jeví jako neúčinné. - V protokolech se mohou zobrazovat zprávy jako:
[debug][os,container] controller memory is not enabled[debug][os,container] One or more required controllers disabled at kernel level
Ursache
Počínaje linuxovým jádrem 6.12 již jádro nezpřístupňuje
cgroup Informace o řadiči podle /proc/cgroups, na který se JVM dříve spoléhal při zjišťování limitů paměti kontejneru. Tato změna přeruší rozpoznávání kontejnerů v ovlivněných verzích prostředí JVM, což způsobí, že budou předpokládat, že mají přístup k úplné paměti hostitele. V důsledku toho JVM přiděluje více paměti, než umožňuje kontejner, a aktivuje tak proces jádra OOMkiller.
V opensourcových projektech existuje několik problémů:
Systém Ubuntu 24.04.3 ve výchozím nastavení nepoužívá jádro 6.12. Některé image jsou ale aktualizované už na verze 6.12, 6.13, 6.14 (například v knihovně imagí AWS).
Lösung
Existují dvě možná rychlá zástupná řešení.
- Dočasně zvyšte limity paměti pro kontejner. Zde jsou například kroky, jak pokračovat v instalaci automatizační platformy Dell Automation Platform, která zdvojnásobí limit paměti pro
keycloakkontejner.
Chcete-li tak učinit, musíte spustit následující příkaz (zkontrolujte jmenný prostor nástroje Orchestrator, například níže:
dapo je výchozí obor názvů nástroje Orchestrator:
kubectl edit sts keycloak -n dapo
Najděte limity paměti a požadavky a zdvojnásobte je.
keycloak V přípravném kroku spotřebovává velké množství paměti. Toto zvýšení nám umožnilo projít tímto inicializačním krokem.
- Explicitní nastavení limitů paměti JVM
K ručnímu omezení využití paměti použijte příznaky při spuštění:
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.