Dell-automatiseringsplatform: Java-baserede beholdere "OOMKilled" startende fra kerne 6.12
概要: Java-baserede programmer i beholdere (såsom Keycloak) kan opleve uventet opsigelse på grund af fejl i manglende hukommelse (OOM), når de kører på Linux-kerne 6.12 eller nyere. Dette problem skyldes ændringer i, hvordan kernen viser "cgroup"-hukommelsesgrænser. Disse ændringer påvirker Java Virtual Machines (JVM) evne til at registrere og respektere beholderhukommelsesbegrænsninger korrekt. ...
この記事は次に適用されます:
この記事は次には適用されません:
この記事は、特定の製品に関連付けられていません。
すべての製品パージョンがこの記事に記載されているわけではありません。
現象
For NativeEdge Dell Automation Platform 1.0, keycloak får OOMKilled under initialisering. Det kan f.eks. ske under installationen af roret, når keycloak Pod kommer op.
Logfiler inde i keycloak Afslut 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.
Beskrivelsen af beholderen viser:
State: Waiting Reason: CrashLoopBackOff Last State: Terminated Reason: OOMKilled
For andre miljøer kan det være:
- Systemet afslutter Java-beholdere (f.eks.
keycloak, Kafka, Elasticsearch) med enOOMKilledStatus. - JVM rapporterer uventet høje estimater for bunkestørrelse, der ofte matcher værtshukommelse snarere end containergrænser.
- Hukommelse tuning flag som
-XX:MaxRAMPercentagesynes ineffektiv. - Logfiler kan vise meddelelser som:
[debug][os,container] controller memory is not enabled[debug][os,container] One or more required controllers disabled at kernel level
原因
Fra og med Linux Kernel 6.12 udsætter kernen ikke længere
cgroup Controlleroplysninger fra /proc/cgroups, som JVM tidligere var afhængig af for at registrere containerhukommelsesgrænser. Denne ændring bryder beholderbevidstheden i berørte JVM-versioner, hvilket får dem til at antage, at de har adgang til den fulde værtshukommelse. Som et resultat tildeler JVM mere hukommelse, end beholderen tillader, hvilket udløser kernens OOMkiller.
Der er flere problemer med dette i open source-projekter:
Ubuntu 24.04.3 bruger ikke 6.12-kernen som standard. Men nogle billeder opdateres allerede med 6.12, 6.13, 6.14 versioner (for eksempel i AWS-billedbiblioteket).
解決方法
Dette problem løses fra Dell Automated Platform 1.1 og nyere
Hvis problemet opstår på Dell Automated Platform 1.0, er der to mulige hurtige løsninger.
- Forøg midlertidigt hukommelsesgrænserne for beholderen. Her er f.eks. trin til at fortsætte med installationen af Dell Automation Platform ved at fordoble hukommelsesgrænsen for
keycloakContainer.
For at gøre det skal du køre følgende kommando (kontrollér f.eks. dit Orchestrator-navneområde nedenfor
dapo er standardnavneområdet for Orchestrator:
kubectl edit sts keycloak -n dapo
Find hukommelsesgrænser og anmodninger, og fordobl dem.
keycloak Bruger masser af hukommelse på forberedelsestrinnet. Denne stigning gjorde det muligt for os at bestå dette initialiseringstrin.
- Indstil eksplicit JVM-hukommelsesgrænser
Brug startflag til manuelt at begrænse hukommelsesforbruget:
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文書のプロパティ
文書番号: 000369678
文書の種類: Solution
最終更新: 23 5月 2026
バージョン: 4
質問に対する他のDellユーザーからの回答を見つける
サポート サービス
お使いのデバイスがサポート サービスの対象かどうかを確認してください。