Наконец!
С Java 8u191 у Вас теперь есть опции:
-XX:InitialRAMPercentage
-XX:MaxRAMPercentage
-XX:MinRAMPercentage
, который может использоваться для калибровки "кучи" как процента применимой физической RAM. (который является тем же, поскольку RAM установила меньше, что ядро использует).
См. Информация о версии для Java8 u191 для получения дополнительной информации. Обратите внимание, что опции упоминаются при Докере, направляющемся, но на самом деле они применяются, являетесь ли Вы в среде Докера или в традиционной среде.
значение по умолчанию для MaxRAMPercentage
составляет 25%. Это чрезвычайно консервативно.
Мое собственное правило: Если Ваш хост более или менее выделен выполнению данного JAVA-приложения, то Вы можете без проблем увеличиваться существенно. Если Вы находитесь на Linux, только рабочие типичные демоны и установили RAM где-нибудь от приблизительно 1 Гбита, и затем я не смущался бы использовать 75% для "кучи" JVM. Снова, помните, что это - 75% RAM , доступного , не, RAM установил . То, что оставляют, является другими процессами пространства пользователя, которые могут работать на хосте и других типах памяти, в которой JVM нуждается (например, для стека). Все вместе, это будет обычно пригодный приятно в 25%, который оставляют. Очевидно, с еще более установленной RAM 75% более безопасная и более безопасная ставка. (Мне жаль, что люди JDK не реализовали опцию, где Вы могли указать лестничную структуру)
Установка MaxRAMPercentage
, опция похожа на это:
java -XX:MaxRAMPercentage=75.0 ....
Примечание, что эти значения процента имеют 'двойной' тип и поэтому Вас , должно указывать их с десятичной точкой. Вы получаете несколько нечетную ошибку, если Вы используете "75" вместо "75,0".