Dell Automation Platform: Java-базовані контейнери «OOMKilled», починаючи з ядра 6.12
概要: Контейнеризовані додатки на основі Java (такі як Keycloak) можуть зазнавати несподіваного завершення через помилки поза пам'яттю (OOM) під час роботи на ядрі Linux 6.12 або новіших версій. Ця проблема виникає через зміни у тому, як ядро відкриває обмеження пам'яті «cgroup». Ці зміни впливають на здатність Java Virtual Machine (JVM) правильно виявляти та поважати обмеження пам'яті контейнерів. ...
この記事は次に適用されます:
この記事は次には適用されません:
この記事は、特定の製品に関連付けられていません。
すべての製品パージョンがこの記事に記載されているわけではありません。
現象
For NativeEdge Dell Automation Platform 1.0, keycloak отримує OOMKilled під час ініціалізації. Наприклад, це може статися під час встановлення керма, коли keycloak Капсула вже наближається.
Колоди всередині 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, Кафка, 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, є два можливі швидкі обхідні шляхи.
- Тимчасово збільшіть обмеження пам'яті контейнера. Наприклад, ось кроки для подальшого встановлення Dell Automation Platform, подвоєння ліміту пам'яті для
keycloakконтейнер.
Для цього потрібно виконати таку команду (наприклад, перевірте простір імен оркестратора нижче
dapo — це простір назв оркестратора за замовчуванням:
kubectl edit sts keycloak -n dapo
Знайдіть межі пам'яті та запити і подвойте їх.
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ユーザーからの回答を見つける
サポート サービス
お使いのデバイスがサポート サービスの対象かどうかを確認してください。