Как установить минимальный и максимальный размер кучи Java через переменные среды?


Как установить минимальный и максимальный размер кучи Java через переменные среды?

Я знаю, что размеры кучи могут быть установлены при запуске java, но я хотел бы, чтобы это было скорректировано через переменные среды на моем сервере.

6 53

6 ответов:

вы не можете сделать это, используя переменные среды напрямую. Вам нужно использовать набор "нестандартных" параметров, которые передаются команде 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 процесс, а не только муравей или кот, чтобы подобрать варианты, такие как -Xmx используйте переменную окружения _JAVA_OPTIONS.

в bash: export _JAVA_OPTIONS="-Xmx1g"

на самом деле, есть способ установить глобальные значения по умолчанию для JVM Sun через переменные среды.

посмотреть как установить системное свойство java, чтобы оно было эффективным всякий раз, когда я запускаю JVM без добавления его в аргументы командной строки.

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

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

пара замечаний:

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

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

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