Как мне установить минимальный и максимальный размер кучи 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
процесс, а не просто муравей или Tomcat, чтобы подобрать варианты, такие как -Xmx
используйте переменную окружения _JAVA_OPTIONS
,
В Баш: export _JAVA_OPTIONS="-Xmx1g"
Вы можете использовать JAVA_TOOL_OPTIONS
.
Пример:
export JAVA_TOOL_OPTIONS=-Xmx512m
Это было упомянуто в некоторых комментариях и в другом ответе.
Вопрос OP довольно старый, но, поскольку это первый результат Google для этого вопроса, я подумал, что добавлю здесь ответ для ясности.
На самом деле, есть способ установить глобальные значения по умолчанию для 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: это позволит зафиксировать размер кучи определенного размера, и сборщику мусора будет меньше работы, потому что кучи никогда не придется повторно размер.