Dell Automation Platform: Javaベースのコンテナ「OOMKilled」(カーネル6.12以降)
Zhrnutie: Javaベースのコンテナ化されたアプリケーション(Keycloakなど)をLinuxカーネル6.12以降で実行すると、メモリー不足(OOM)エラーが原因で予期せず終了することがあります。この問題は、カーネルが "cgroup" のメモリ制限を公開する方法の変更に起因します。 これらの変更は、コンテナー・メモリーの制約を正しく検出して尊重する Java 仮想マシン (JVM) の機能に影響します。 ...
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
NativeEdge Dell Automation Platform 1.0の場合、 keycloak 取得している OOMKilled 初期化中。たとえば、helm のインストール中に、 keycloak Podが起動予定です
内部のログ keycloak 次で終わる:
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.
コンテナの説明には、次の情報が表示されます。
State: Waiting Reason: CrashLoopBackOff Last State: Terminated Reason: OOMKilled
その他の環境では、次のようになります。
- Java コンテナー (例えば、
keycloak、Kafka、Elasticsearch) をOOMKilledステータス。 - JVMは、予想外に高いヒープ・サイズの推定値を報告し、多くの場合、コンテナの制限ではなくホスト・メモリーと一致します。
- 次のようなメモリー チューニング フラグ
-XX:MaxRAMPercentage効果がないように見えます。 - ログには、次のようなメッセージが表示される場合があります。
[debug][os,container] controller memory is not enabled[debug][os,container] One or more required controllers disabled at kernel level
Príčina
Linux カーネル 6.12 以降では、カーネルは
cgroup コントローラー情報: /proc/cgroupsこれは、JVM がコンテナーのメモリー制限を検出するために以前依存していたものです。この変更により、影響を受けるJVMバージョンのコンテナ認識が中断され、ホストメモリ全体にアクセスできると想定されます。その結果、JVMはコンテナが許可するよりも多くのメモリを割り当て、カーネルの OOMkillerの詳細を確認してください。
オープンソース プロジェクトには、これに関するいくつかの問題があります。
Ubuntu 24.04.3は、デフォルトでは6.12カーネルを使用しません。ただし、一部のイメージは、すでに 6.12、6.13、6.14 バージョンで更新されています (AWS イメージライブラリなど)。
Riešenie
この問題は、Dell Automated Platform 1.1以降で解決されています
Dell Automated Platform 1.0で問題が発生した場合は、次の2つの簡単な回避策があります。
- コンテナーのメモリ制限を一時的に増やします。たとえば、Dell Automation Platformのインストールを続行し、メモリー制限を2倍にする手順は次のとおりです。
keycloakコンテナー。
これを行うには、次のコマンドを実行する必要があります (たとえば、以下の Orchestrator 名前空間を確認します)
dapo は、デフォルトのオーケストレーター名前空間です。
kubectl edit sts keycloak -n dapo
メモリの制限と要求を見つけて、それらを 2 倍にします。
keycloak 準備ステップで多くのメモリを消費します。この増加により、この初期化ステップをパスすることができました。
- JVMメモリー制限の明示的な設定
起動フラグを使用して、メモリ使用量を手動で制限します。
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.