Dell Automation Platform: Javaベースのコンテナ「OOMKilled」(カーネル6.12以降)

概要: Javaベースのコンテナ化されたアプリケーション(Keycloakなど)をLinuxカーネル6.12以降で実行すると、メモリー不足(OOM)エラーが原因で予期せず終了することがあります。この問題は、カーネルが "cgroup" のメモリ制限を公開する方法の変更に起因します。 これらの変更は、コンテナー・メモリーの制約を正しく検出して尊重する Java 仮想マシン (JVM) の機能に影響します。 ...

この記事は次に適用されます: この記事は次には適用されません: この記事は、特定の製品に関連付けられていません。 すべての製品パージョンがこの記事に記載されているわけではありません。

現象

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

原因

Linux カーネル 6.12 以降では、カーネルは cgroup コントローラー情報: /proc/cgroupsこれは、JVM がコンテナーのメモリー制限を検出するために以前依存していたものです。この変更により、影響を受けるJVMバージョンのコンテナ認識が中断され、ホストメモリ全体にアクセスできると想定されます。その結果、JVMはコンテナが許可するよりも多くのメモリを割り当て、カーネルの OOMkillerの詳細を確認してください。

オープンソース プロジェクトには、これに関するいくつかの問題があります。

Ubuntu 24.04.3は、デフォルトでは6.12カーネルを使用しません。ただし、一部のイメージは、すでに 6.12、6.13、6.14 バージョンで更新されています (AWS イメージライブラリなど)。

解決方法

この問題は、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"

対象製品

Dell Automation Platform, NativeEdge Solutions, Dell Automation Platform Components, NativeEdge
文書のプロパティ
文書番号: 000369678
文書の種類: Solution
最終更新: 23 5月 2026
バージョン:  4
質問に対する他のDellユーザーからの回答を見つける
サポート サービス
お使いのデバイスがサポート サービスの対象かどうかを確認してください。