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