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

StackOverflow https://stackoverflow.com/questions/417152

Вопрос

Как установить минимальный и максимальный размер кучи 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 для получения подробной информации.Варианты, которые вы ищете: -Xmx и -Xms (это «начальный» размер кучи, так что, вероятно, это то, что вы ищете.)

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

Несколько заметок:

<Ол>
  • Apache ant ничего не знает о JAVA_OPTS, а скрипты запуска Tomcat знают об этом. Для Apache ant используйте ANT_OPTS, чтобы повлиять на среду для JVM, которая запускает / ant /, но не для вещей, которые ant может запустить.

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

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

  • Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top