Як встановити мінімальний та максимальний розмір купи Java за допомогою змінних середовища?
Я знаю, що розміри купи можна встановити під час запуску 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_OPTS
техніка також використовується сценаріями, згенерованими плагіном maven appassemble.
Якщо ви хочете, щоб будь-який java
процес, не лише ant або Tomcat, вибрав такі варіанти, як -Xmx
використання змінної середовища _JAVA_OPTIONS
.
У bash: export _JAVA_OPTIONS="-Xmx1g"
set _JAVA_OPTIONS=-Xmx1g
Щоб зробити його постійним, створіть нову змінну середовища _JAVA_OPTIONS
та встановіть його на-Xmx1g
Насправді існує спосіб встановити загальні значення за замовчуванням для JVM Sun за допомогою змінних середовища.
Ви не можете зробити це за допомогою змінних середовища. Це робиться за допомогою "нестандартних" опцій. Виконати: java -X
для деталей. На що ви шукаєте варіанти -Xmx
і -Xms
(це «початковий» розмір купи, так що, ймовірно , що ви шукаєте.)
Можна використовувати JAVA_TOOL_OPTIONS
.
Приклад:
export JAVA_TOOL_OPTIONS=-Xmx512m
Про це зазначалося в деяких коментарях та в іншій відповіді .
Питання OP досить давнє, але оскільки це перший результат Google для запитання, я думав, що для чіткості додам відповідь тут.
Я думаю, що ваш єдиний варіант - це обернути java сценарієм, який замінює змінні середовища в командний рядок
Пара приміток:
Мураха Apache нічого не знає про JAVA_OPTS, тоді як сценарії запуску Tomcat це знають. Для мураха Apache використовуйте ANT_OPTS, щоб впливати на середовище для JVM, що працює / ant /, але не на речі, які мураха може запустити.
Максимальний розмір купи, який ви можете встановити, повністю залежить від навколишнього середовища: для більшості 32-розрядних систем максимальний обсяг простору купи, який ви можете запитати, незалежно від доступної пам'яті, знаходиться в діапазоні 2 ГБ. Найбільша купа в 64-розрядної системі "справді велика". Крім того, ви практично обмежені фізичною пам'яттю, оскільки куча управляється JVM, і ви не хочете, щоб багато обмінів відбувалося на диск.
У серверних середовищах зазвичай потрібно встановити однакові значення -Xms та -Xmx: це зафіксує розмір купи у певному розмірі, і збирач сміття має менше роботи, оскільки купу ніколи не доведеться повторно розміром.