Ответ 1
По-видимому, правильная форма без "
Как и в
set JAVA_OPTS=-Xms512M -Xmx1024M
Я пытаюсь установить JAVA_OPTS для Tomcat на компьютере под управлением Windows, но я продолжаю получать сообщение об ошибке, если я добавляю несколько переменных.
Например, это работает:
set JAVA_OPTS="-Xms512M"
Но это не так:
set JAVA_OPTS="-Xms512M -Xmx1024M"
Это приводит к ошибке:
Invalid initial heap size: -Xms512M -Xmx1024M
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Как будто я могу установить одну переменную (-Xmx также будет работать), но не несколько.
Я использую инструктированный файл setenv.bat, а Tomcat - 7.0.35.
По-видимому, правильная форма без "
Как и в
set JAVA_OPTS=-Xms512M -Xmx1024M
Для Windows в случае, если значение переменной имеет пробел ( "), правильный способ заключается в том, чтобы поместить кавычки (" ) перед именем переменной:
set "JAVA_OPTS=-Xms512M -Xmx1024M"
Попробуйте
set JAVA_OPTS=%JAVA_OPTS% -Xms512M -Xmx1024M
Мне нравится комбинация Gaurav и user2550946, отвечающая лучше всего, но хотелось бы добавить еще два аспекта:
Не используйте JAVA_OPTS
, вместо этого используйте CATALINA_OPTS
. Это будет использоваться исключительно для запуска tomcat, а не для его закрытия. Как правило, вам нужно больше памяти при запуске tomcat, но процесс останова (который просто вращается, говорит, что tomcat выключается, а затем заканчивается снова) не нуждается в специально настроенных ресурсах. Фактически, выключение может даже потерпеть неудачу, если какой-то нелепый объем памяти больше не доступен из ОС.
В производственных системах моя рекомментация требует немедленного получения максимально допустимой памяти. Потому что, если вы ожидаете, что память понадобится рано или поздно, вы не хотите, чтобы она не была доступна в 3 часа ночи - скорее, когда вы запускаете сервер. Таким образом, установите -Xmx
и -Xms
на то же значение в производственных системах. (Это делает мой аспект 1 еще более актуальным)
Или, в одной строке, здесь моя рекомендация:
set "CATALINA_OPTS=%CATALINA_OPTS% -Xms1024M -Xmx1024M"
Рекомендуется создать файл с именем setenv.bat и поместить его в каталог Tomcat bin. С помощью этого файла (который запускается скриптами catalina.bat и catalina.sh) вы можете изменить следующие параметры среды Tomcat с помощью переменной JAVA_OPTS:
Вы можете установить минимальный и максимальный размер кучи памяти с помощью
Параметры JVM -Xms и -Xmx.
Лучшие ограничения зависят от многих условий, таких как преобразования, которые должен выполнять интегратор ETL. Для преобразования информации Discovery рекомендуется максимум 1 ГБ. Например, чтобы установить минимальный размер кучи до 128 МБ и максимальный размер кучи до 1024 МБ, используйте
JAVA_OPTS=-Xms128m -Xmx1024m
Вы должны установить максимальный предел пространства памяти PermGen (постоянное поколение) в размере, превышающем значение по умолчанию. По умолчанию 64 МБ недостаточно для корпоративных приложений. Подходящий предел памяти зависит от разных критериев, но в большинстве случаев выбор из 256 МБ будет хорошим выбором. Если максимум пространства PermGen слишком мал, могут возникнуть ошибки пространства OutOfMemoryError: PermGen. Максимальное ограничение PermGen можно установить с помощью следующего параметра JVM
-XX:MaxPermSize=256m
По соображениям производительности рекомендуется, чтобы приложение запускалось в режиме сервера. По умолчанию Apache Tomcat не работает в режиме сервера. Вы можете установить режим сервера с помощью параметра JVM-сервера. Вы можете установить параметр JVM в переменной JAVA_OPTS в переменной среды в файле setenv.
The following is an example of a setenv.bat file:
set "JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx1024m -XX:MaxPermSize=256m -server"
Это связано с тем, что объем памяти, который вы хотите назначить для JVM, недоступен или, возможно, вы назначаете больше доступной памяти. Попробуйте небольшой размер, тогда вы сможете увидеть разницу. Пытаться: set JAVA_OPTS = -Xms128m -Xmx512m -XX: PermSize = 128m
SET JAVA_HOME=C:\Applications\java\java_8
SET PATH=%PATH%;C:\Applications\java\java_8\bin
SET JAVA_OPTIONS=-d64 -Xms128g -Xmx128g