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

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

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

NativeEdge Dell Automation Platformの場合、 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

Cause

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

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

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

Resolution

考えられる簡単な回避策は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"

Affected Products

Dell Automation Platform, NativeEdge Solutions, Dell Automation Platform Components, NativeEdge
Article Properties
Article Number: 000369678
Article Type: Solution
Last Modified: 16 Oct 2025
Version:  2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.