Dell Automation Platform: Java-базовані контейнери «OOMKilled», починаючи з ядра 6.12

Summary: Контейнеризовані додатки на основі Java (такі як Keycloak) можуть зазнавати несподіваного завершення через помилки поза пам'яттю (OOM) під час роботи на ядрі Linux 6.12 або новіших версій. Ця проблема виникає через зміни у тому, як ядро відкриває обмеження пам'яті «cgroup». Ці зміни впливають на здатність Java Virtual Machine (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

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

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

Цю проблему вирішують на 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"

Affected Products

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