InitialHeapSize java установлен в ноль, и все же приложение работает, как это? - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь запустить приложение java с этим параметром jvm внутри docker, организованного k8s:

-XX:InitialHeapSize=0 -XX:InitialRAMPercentage=0 -XX:MaxRAMPercentage=80

, и это мои ограничения на процессор и на память:

resources:
          limits:
            cpu: 900m
            memory: 900M
          requests:
            cpu: 900m
            memory: 900M

когда я подаю заявку на изменения, приложение запускается, даже если я даю ей 0 для InitialRAMPercentage и 0 для XX: InitialHeapSize.

Когда я go внутри моего модуля и я запускаю ps ax

Это дает мне следующее:

PID TTY      STAT   TIME COMMAND
    1 ?        Ssl    0:53 java -XX:InitialHeapSize=0 -XX:InitialRAMPercentage=0 -XX:MaxRAMPercentage=80 

Как я понимаю, когда я передаю 0 в процентах, приложение не запускается, потому что не хватает памяти. Это правда ?

У вас есть какое-либо объяснение этому?

1 Ответ

3 голосов
/ 16 января 2020

Начальный размер кучи просто сообщает JVM начальный размер кучи, он будет увеличивать его по мере необходимости (пока не будет достигнут максимальный размер кучи). Кроме того, совпадение, установка начального размера на 0 - это то же самое, что и установка его вообще, и JVM сама может определить размер начального размера кучи.

См., Например, этот SO ответ и ссылки, приведенные в нем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...