Tomcat 7:Как правильно установить начальный размер кучи?
Я пытался настроить начальный размер кучи экземпляра tomcat 7 (CentOS, java-version: 1.6.0_25-b06), добавив следующую строку catalina.sh:
export CATALINA_OPTS="-Xms=512M -Xmx=1024M"
запуск tomcat завершается неудачно и регистрирует следующее сообщение для catalina.выход:
Invalid initial heap size: -Xms=512m
Could not create the Java virtual machine.
что не так с этими параметрами?
9 ответов:
используйте следующую команду, чтобы увеличить размер кучи java для tomcat7 (дистрибутивы linux) правильно:
echo 'export CATALINA_OPTS="-Xms512M -Xmx1024M"' > /usr/share/tomcat7/bin/setenv.sh
возможно, Вам не нужно иметь экспорт, просто добавьте эту строку в catalina.sh :
CATALINA_OPTS="-Xms512M -Xmx1024M"
setenv.sh лучше, потому что вы можете легко переносить такую конфигурацию с одной машины на другую или с одной версии Tomcat на другую. catalina.sh изменения от одной версии Tomcat к другой. Но вы можете сохранить свой setenv.sh без изменений с любой версией Tomcat.
еще одно преимущество заключается в том, что легче отслеживать историю ваших изменений, если вы добавляете ее в свою резервную копию или систему управления версиями. Если вы посмотрите, как вы setenv.sh изменения по ходу истории вы увидите только ваши собственные изменения. В то время как если вы используете catalina.sh, вы всегда будете видеть не только ваши изменения, но и изменения, которые пришли с каждой новой версией Tomcat.
позаботьтесь об изменениях в дистрибутивах Debian! Я пытался изменить
CATALINA_OPTS
в моем Debian 7 и результаты, где этот tomcat больше не начинался. Таким образом я решил эту проблему, изменив свойствоJAVA_OPTS
на местеCATALINA_OPTS
, такойexport JAVA_OPTS="-Xms512M -Xmx1024M"
просто наткнулся на это и я реализовал решение Нейтана:
добавить строку (изменение значения):
export JAVA_OPTS="-Xms512M -Xmx1024M"
to /usr/share/tomcat7/bin/setenv.sh
Если этот файл не существует, создайте его и
chown root:root it chmod 755 it
а затем перезапустить tomcat и проверьте это с
ps aux | grep logging
который должен просто забрать экземпляр и показать java parms
Он работает даже без использования ключевого слова '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"
перейдите в "каталог Tomcat" / bin directory
если Linux, то создать setenv.sh иначе, если Windows затем создает setenv.летучая мышь
содержание setenv.* file:
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/