Весеннее загрузочное приложение все еще получает OOM в Kubernetes

У меня седые волосы от этого. У меня есть приложение Spring Boot, работающее в Kubernetes, и я не могу найти какое-либо разумное значение для ограничения памяти, очень часто я получаю OOM на значениях ниже 512 МБ.

Вот как я запускаю приложение в Dockerfile:

ENTRYPOINT ["java", "-XshowSettings: vm", "-Xms64m", "-Xmx128m", "-XX: CompressedClassSpaceSize = 32m", "-XX: ReservedCodeCacheSize = 32m", "-XX: MaxMetaspaceSize = 90m", "-Djava.security.egd = file: / dev /./ urandom", "-jar", "/app.jar"]

Всего где-то около 300 МБ нужно только для приложения Spring Boot. Если я установлю что-нибудь pod memory limit ниже 512MB я получаю OOMKill, Должен ли я принимать во внимание также некоторые другие потребители памяти? Что занимает еще 100 МБ? Я знаю, что это не так много, но в инфраструктуре микросервиса и при запуске большого количества реплик бесполезно запускать такой сервис с 1 ГБ памяти. За любые намеки, я благодарен.

Видя это, когда я захожу в модуль:

  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
    1     0 root     S     583m   2%   1   6% java -XshowSettings:vm -Xms64m -Xmx128m -XX:CompressedClassSpaceSize=32m -XX:ReservedCodeCacheSize=32m -XX:MaxMetaspaceSize=90m -Djava.security.egd=file:/dev/./urandom -jar /app.jar

0 ответов

Другие вопросы по тегам