Как установить минимальный и максимальный размер кучи Java через переменные среды?
-
03-07-2019 - |
Вопрос
Как установить минимальный и максимальный размер кучи Java через переменные среды?
Я знаю, что размеры кучи можно установить при запуске Java, но я хотел бы настроить это с помощью переменных среды на моем сервере.
Решение
Вы не можете сделать это, используя переменные окружения напрямую. Вам необходимо использовать набор «нестандартных» параметры, которые передаются в команду Java. Запустите: Java -X для деталей. Нужные параметры: -Xmx и -Xms (это «начальный» размер кучи, так что, вероятно, вы ищете.)
Некоторые продукты, такие как Ant или Tomcat, могут поставляться с пакетным скриптом, который ищет переменную среды JAVA_OPTS, но он не является частью среды выполнения Java. Если вы используете один из этих продуктов, вы можете установить переменную следующим образом:
set JAVA_OPTS="-Xms128m -Xmx256m"
Вы также можете использовать этот подход с помощью собственной командной строки, например:
set JAVA_OPTS="-Xms128m -Xmx256m"
java ${JAVA_OPTS} MyClass
Другие советы
Если вы хотите, чтобы какой-либо процесс java
, а не только ant или Tomcat, мог подобрать такие параметры, как -Xmx
, используйте переменную среды _JAVA_OPTIONS
. р>
В bash: export _JAVA_OPTIONS = " -Xmx1g "
На самом деле, есть способ установить глобальные значения по умолчанию для JVM от Sun через переменные среды.
Вы не можете сделать это, используя переменные среды.Это делается с помощью «нестандартных» опций.Бегать: java -X
для получения подробной информации.Варианты, которые вы ищете: -Xmx
и -Xms
(это «начальный» размер кучи, так что, вероятно, это то, что вы ищете.)
Я думаю, что ваш единственный вариант - заключить java в скрипт, который подставляет переменные окружения в командную строку
Несколько заметок:
<Ол>Apache ant ничего не знает о JAVA_OPTS, а скрипты запуска Tomcat знают об этом. Для Apache ant используйте ANT_OPTS, чтобы повлиять на среду для JVM, которая запускает / ant /, но не для вещей, которые ant может запустить.
Максимальный размер кучи, который вы можете установить, полностью зависит от среды: для большинства 32-разрядных систем максимальный объем кучи, который вы можете запросить, независимо от доступной памяти, находится в диапазоне 2 ГБ. Самая большая куча в 64-битной системе - «действительно большая». Кроме того, вы также практически ограничены физической памятью, поскольку куча управляется JVM, и вы не хотите, чтобы на диске происходила большая перестановка.
В серверных средах обычно требуется установить одинаковые значения для -Xms и -Xmx: это позволит зафиксировать размер кучи определенного размера, а сборщику мусора будет меньше работы, поскольку куча будет никогда не нужно менять размер.