Как установить размер Java min и max heap через переменные среды?
Я знаю, что размеры кучи могут быть установлены при запуске java, но я хотел бы, чтобы это скорректировалось с помощью переменных среды на моем сервере.
Как установить размер Java min и max heap через переменные среды?
Я знаю, что размеры кучи могут быть установлены при запуске java, но я хотел бы, чтобы это скорректировалось с помощью переменных среды на моем сервере.
Вы не можете использовать это напрямую, используя переменные среды. Вам нужно использовать набор "нестандартных" опций, которые передаются команде java. Запустите: java -X для получения дополнительной информации. Параметры, которые вы ищете, --Xmx и -Xms (это "начальный" размер кучи, поэтому, вероятно, вы ищете.)
Некоторые продукты, такие как Ant или Tomcat, могут поставляться с пакетом script, который ищет переменную среды 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"
На самом деле существует способ установить глобальные значения по умолчанию для Sun JVM через переменные среды.
Вы не можете сделать это, используя переменные среды. Это делается с помощью "нестандартных" опций. Запустите: java -X
для получения дополнительной информации. Параметры, которые вы ищете, это -Xmx
и -Xms
(это "начальный" размер кучи, поэтому, вероятно, вы ищете.)
Я думаю, что ваш единственный вариант - обернуть java в script, который заменяет переменные среды в командной строке
Несколько примечаний:
Apache ant ничего не знает о JAVA_OPTS, в то время как скрипты запуска Tomcat. Для Apache ant используйте ANT_OPTS для воздействия на среду JVM, которая запускает /ant/, но не для того, что может запускаться ant.
Максимальный размер кучи, который вы можете установить, полностью зависит от среды: для большинства 32-битных систем максимальное количество пространства кучи, которое вы можете запросить, независимо от доступной памяти, находится в диапазоне 2GiB. Самая большая куча на 64-битной системе "действительно большая". Кроме того, вы также ограничены физической памятью, так как куча управляется JVM, и вы не хотите, чтобы на диск происходило много перекосов.
Для серверных сред обычно требуется установить значения -Xms и -Xmx на одно и то же значение: это позволит исправить размер кучи определенного размера, и сборщик мусора имеет меньше работы, потому что куча будет никогда не нужно менять размеры.