Dell Otomasyon Platformu: Java Tabanlı Kapsayıcılar Çekirdek 6.12'den başlayarak "OOMKilled"

Samenvatting: Java tabanlı kapsayıcılı uygulamalar (Keycloak gibi), Linux Kernel 6.12 veya sonraki sürümlerde çalışırken yetersiz bellek (OOM) hataları nedeniyle beklenmeyen sonlandırma deneyimiyle karşılaşabilir. Bu sorun, çekirdeğin "cgroup" bellek sınırlarını kullanıma sunma şeklindeki değişikliklerden kaynaklanır. Bu değişiklikler, Java Sanal Makinesi'nin (JVM) kapsayıcı bellek kısıtlamalarını doğru şekilde algılama ve bunlara uyma becerisini etkiler. ...

Dit artikel is van toepassing op Dit artikel is niet van toepassing op Dit artikel is niet gebonden aan een specifiek product. Niet alle productversies worden in dit artikel vermeld.

Symptomen

NativeEdge Dell Automation Platform 1.0 için, keycloak alıyor OOMKilled başlatma sırasında. Örneğin, dümenin takılması sırasında, keycloak Pod geliyor.

Günlüklerin içindeki keycloak Şununla biter:

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.

Kapsayıcının açıklaması şunları gösterir:

State: Waiting
  Reason: CrashLoopBackOff
Last State: Terminated
  Reason: OOMKilled

Diğer ortamlar için şunlar olabilir:

  • Sistem Java kapsayıcılarını sonlandırır (örneğin, keycloak, Kafka, Elasticsearch) ile OOMKilled Durum.
  • JVM, beklenmedik şekilde yüksek yığın boyutu tahminleri bildirir ve genellikle kapsayıcı sınırları yerine konak belleğiyle eşleşir.
  • Aşağıdakiler gibi bellek ayarlama bayrakları -XX:MaxRAMPercentage etkisiz görünüyor.
  • Günlükler aşağıdaki gibi mesajlar gösterebilir:
    • [debug][os,container] controller memory is not enabled
    • [debug][os,container] One or more required controllers disabled at kernel level

Oorzaak

Linux Çekirdeği 6.12'den başlayarak, çekirdek artık açığa çıkmaz cgroup Denetleyici bilgileri: /proc/cgroups, JVM'nin daha önce kapsayıcı bellek sınırlarını algılamak için güvendiği. Bu değişiklik, etkilenen JVM sürümlerinde kapsayıcı farkındalığını bozar ve tam ana bilgisayar belleğine erişimleri olduğunu varsaymalarına neden olur. Sonuç olarak JVM, kapsayıcının izin verdiğinden daha fazla bellek ayırarak çekirdeğin OOMkiller.

Açık kaynaklı projelerde bunun için birkaç sorun vardır:

Ubuntu 24.04.3, varsayılan olarak 6.12 Çekirdeğini kullanmaz. Ancak bazı görüntüler zaten 6.12, 6.13, 6.14 sürümleriyle güncellenmiştir (örneğin, AWS görüntü kitaplığında).

Oplossing

Bu sorun, Dell Automated Platform 1.1 ve üzeri sürümlerde çözülmüştür

Sorunla Dell Automated Platform 1.0'da karşılaşılırsa iki olası hızlı geçici çözüm vardır.

  • Kapsayıcının bellek sınırlarını geçici olarak artırın. Örneğin, Dell Otomasyon Platformu kurulumuna devam etmek ve için bellek sınırını iki katına çıkarmak için gereken adımlar aşağıda verilmiştir. keycloak Kapsayıcı.
Bunu yapmak için aşağıdaki komutu çalıştırmanız gerekir (örneğin, aşağıdaki orchestrator ad alanınızı kontrol edin dapo varsayılan orchestrator ad alanıdır:
kubectl edit sts keycloak -n dapo
Bellek sınırlarını ve isteklerini bulun ve ikiye katlayın. keycloak hazırlık adımında çok fazla bellek tüketir. Bu artış, bu başlatma adımını geçmemizi sağladı.
  • Açıkça JVM Bellek Sınırlarını Ayarlama

Bellek kullanımını manuel olarak kısıtlamak için başlangıç bayraklarını kullanın:

extraEnvVars:
  - name: JAVA_OPTS_KC_HEAP
    value: "-XX:MaxRAMPercentage=70 -XX:MinRAMPercentage=70 -XX:InitialRAMPercentage=50 -XX:MaxRAM=1G"

Getroffen producten

Dell Automation Platform, NativeEdge Solutions, Dell Automation Platform Components, NativeEdge
Artikeleigenschappen
Artikelnummer: 000369678
Artikeltype: Solution
Laatst aangepast: 23 mei 2026
Versie:  4
Vind antwoorden op uw vragen via andere Dell gebruikers
Support Services
Controleer of uw apparaat wordt gedekt door Support Services.