Каков размер кучи моей JVM, установленный для приложения docker spring boot?

#spring-boot #docker #jvm #heap-memory

#spring-boot #docker #jvm #куча-память

Вопрос:

Я никогда не устанавливал размер кучи моего образа docker.

 root@0f94b4ca1efb:/# java -XX: PrintFlagsFinal -version | grep HeapSize
   size_t ErgoHeapSizeLimit                        = 0                                         {product} {default}
   size_t HeapSizePerGCThread                      = 43620760                                  {product} {default}
   size_t InitialHeapSize                          = 33554432                                  {product} {ergonomic}
   size_t LargePageHeapSizeThreshold               = 134217728                                 {product} {default}
   size_t MaxHeapSize                              = 513802240                                 {product} {ergonomic}
    uintx NonNMethodCodeHeapSize                   = 5825164                                {pd product} {ergonomic}
    uintx NonProfiledCodeHeapSize                  = 122916538                              {pd product} {ergonomic}
    uintx ProfiledCodeHeapSize                     = 122916538                              {pd product} {ergonomic}
  

но я вижу, что на изображении максимальный размер кучи составляет 513M. Так что это как-то вычисляется. Как мне установить его самостоятельно, если я хочу его увеличить?

Я пытался это сделать

 docker run -d --name devServer -e "SPRING_PROFILES_ACTIVE=dev" -e "JAVA_OPTS=-Xmx1g" -p 8080:8080 efd2e03a-8b5f-402a-8222-c8953e9f16aa /bin/bash
  

но это не имеет никакого эффекта

Комментарии:

1. Это может ответить на ваш вопрос: developers.redhat.com/blog/2017/03/14/java-inside-docker

2. Какую версию JDK вы используете? Если вы используете JDK> = 10, то ограничения памяти автоматически распознаются и применяются. docker.com/blog /…

Ответ №1:

JVM автоматически настраивает размер кучи в соответствии со спецификацией компьютера, на котором он запущен, подробности в статье ниже.

https://www.atamanroman.dev/articles/jvm-memory-settings-container-environment/