Как установить минимальный и максимальный размер кучи Java с помощью переменных окружения?

Как установить минимальный и максимальный размер кучи 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, чтобы оно было эффективным, когда я запускаю JVM, не добавляя его в аргументы командной строки .

Вы не можете это сделать, используя переменные среды. Это делается с помощью «нестандартных» опций. Запустите: java -X для получения дополнительной информации. Параметры, которые вы ищете, -Xms и -Xms (это «начальный» размер кучи, поэтому, вероятно, вы ищете.)

Я думаю, что ваш единственный вариант – обернуть java в скрипт, который заменяет переменные среды в командной строке

Несколько примечаний:

  1. Мусор Apache ничего не знает о JAVA_OPTS, в то время как сценарии запуска Tomcat. Для мусора Apache используйте ANT_OPTS, чтобы повлиять на среду для JVM, которая запускает / ant /, но не на то, что может запустить муравей.

  2. Максимальный размер кучи, который вы можете установить, полностью зависит от среды: для большинства 32-битных систем максимальное количество пространства кучи, которое вы можете запросить, независимо от доступной памяти, находится в диапазоне 2GiB. Самая большая куча на 64-битной системе «действительно большая». Кроме того, вы также ограничены физической памятью, так как куча управляется JVM, и вы не хотите, чтобы на диске происходило много перекосов.

  3. Для серверных сред обычно вы хотите установить -Xms и -Xmx одинаковое значение: это позволит исправить размер кучи определенного размера, и сборщик мусора имеет меньше работы, потому что куча никогда не должна быть переделана, размер.

Давайте будем гением компьютера.