Tomcat 7: Как правильно установить начальный размер кучи? - PullRequest
65 голосов
/ 01 августа 2011

Я пытался настроить начальный размер кучи экземпляра Tomcat 7 (CentOS, java -version: 1.6.0_25-b06), добавив следующую строку в catalina.sh:

export CATALINA_OPTS="-Xms=512M -Xmx=1024M"

Запуск tomcat завершается неудачно и регистрирует следующее сообщение в catalina.out:

Invalid initial heap size: -Xms=512m
Could not create the Java virtual machine.

Что не так с этими параметрами?

Ответы [ 10 ]

108 голосов
/ 01 августа 2011

Вы не должны использовать =. Просто используйте это:

export CATALINA_OPTS="-Xms512M -Xmx1024M"
27 голосов
/ 16 декабря 2014

Используйте следующую команду, чтобы правильно увеличить размер кучи Java для tomcat7 (дистрибутивы Linux):

echo 'export CATALINA_OPTS="-Xms512M -Xmx1024M"' > /usr/share/tomcat7/bin/setenv.sh
10 голосов
/ 25 ноября 2013

Вам может не понадобиться export , просто добавьте эту строку в catalina.sh :

CATALINA_OPTS="-Xms512M -Xmx1024M"
3 голосов
/ 01 февраля 2015

setenv.sh лучше, потому что вы можете легко перенести такую ​​конфигурацию с одной машины на другую или с одной версии Tomcat на другую.catalina.sh меняется с одной версии Tomcat на другую.Но вы можете сохранить свой setenv.sh без изменений с любой версией Tomcat.

Еще одно преимущество заключается в том, что вам легче отслеживать историю ваших изменений, если вы добавите ее в свою систему резервного копирования или управления версиями.Если вы посмотрите, как ваш setenv.sh меняется в истории, вы увидите только свои изменения.Принимая во внимание, что если вы используете catalina.sh, вы всегда будете видеть не только свои изменения, но и изменения, которые приходили с каждой новой версией Tomcat.

1 голос
/ 28 января 2017

Проведя хорошее время на этом. Я обнаружил, что именно так должен выглядеть setenv.bat. В пакетном файле символы "не принимаются".

set CATALINA_OPTS = -Xms512m -Xmx1024m -XX: PermSize = 128 м -XX: MaxPermSize = 768 м

echo hello "% CATALINA_OPTS%"

1 голос
/ 25 августа 2016

Работает даже без использования ключевого слова export. Это то, что у меня есть в моем setenv.sh (/usr/share/tomcat7/bin/setenv.sh), и это работает.

ОС: 14.04.1-Ubuntu Версия сервера: Apache Tomcat / 7.0.52 (Ubuntu) Построен сервер: 30 июня 2016 01:59:37 Номер сервера: 7.0.52.0

JAVA_OPTS="-Dorg.apache.catalina.security.SecurityListener.UMASK=`umask` -server -Xms6G -Xmx6G -Xmn1400m -XX:HeapDumpPath=/Some/logs/ -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:SurvivorRatio=8 -XX:+UseCompressedOops -Dcom.sun.management.jmxremote.port=8181 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Dserver.name=$HOSTNAME"
1 голос
/ 21 января 2016

Только что натолкнулся на это, и я реализовал решение Натана:

добавить строку (при необходимости изменив значения):

export JAVA_OPTS="-Xms512M -Xmx1024M"

до /usr/share/tomcat7/bin/setenv.sh

Если этот файл не существует, создайте его и

chown root:root it
chmod 755 it

А затем перезапустите Tomcat и проверьте это с помощью

ps aux | grep logging

Который должен просто взять экземпляр и показать java parms

1 голос

Будьте осторожны с изменениями в дистрибутивах Debian! Я попытался изменить CATALINA_OPTS в своем Debian 7 и результаты, когда этот кот уже не запускался. Таким образом, я решил эту проблему, изменив свойство JAVA_OPTS вместо CATALINA_OPTS, например

export JAVA_OPTS="-Xms512M -Xmx1024M"
0 голосов
/ 20 мая 2019

Если это не работает на вашем компьютере Centos 7 "export CATALINA_OPTS =" - Xms512M -Xmx1024M "", то вы можете изменить память кучи из файла vi /etc/systemd/system/tomcat.service, тогда это значение отобразится в вашем tomcat как помощь ps -ef | grep tomcat.

0 голосов
/ 20 мая 2016

Перейдите в «Каталог Tomcat» / каталог bin

если Linux, то создайте setenv.sh, иначе, если Windows, тогда создайте setenv.bat

содержимое файла setenv. *:

export CATALINA_OPTS="$CATALINA_OPTS -Xms512m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx8192m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"

после этого перезапустите tomcat с новыми параметрами.

объяснение и полная информация здесь

http://crunchify.com/how-to-change-jvm-heap-setting-xms-xmx-of-tomcat/

...