Мне нужно настроить параметры памяти Tomcat как часть более крупной установки, поэтому ручная настройка tomcat с помощью приложения конфигурации после факта не может быть и речи. Я думал, что могу просто добавить настройки памяти JVM в переменную среды JAVA_OPTS, но я тестирую это с помощью jconsole, чтобы увидеть, работает ли он, а он ... нет.
Согласно комментарию ниже, CATALINA_OPTS тоже не работает. Пока что единственный способ заставить его работать - через графический интерфейс конфигурации Tomcat, и это неприемлемое решение моей проблемы.




Используйте переменную среды CATALINA_OPTS.
Я могу гарантировать, что он работает на 5.0.28. Проверьте startup.bat / sh и catalina.bat / sh, чтобы узнать, что используется. Возможно, вы передаете аргументы в неправильном формате?
Не уверен, что это будет подходящее решение для вас. Но единственный способ контролировать настройки памяти tomcat, а также количество подключений и т. д., Который действительно работает для нас, - это Лямбда-зонд.
Он показывает большую часть информации, которая нам нужна для настройки Tomcat. Мы тестировали его с Tomcat 5.5 и 6.0, и он отлично работает, несмотря на статус бета-версии и дату последнего обновления в конце 2006 года.
Если вы запускаете Tomcat вручную (не как службу), то вам подойдет переменная среды CATALINA_OPTS. Если вы запустите его как службу, настройки, вероятно, хранятся где-то в реестре. На моем компьютере установлен Tomcat 6, и я нашел настройки в ключе HKLM\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java.
Чтобы добавить к предыдущему комментарию, документация для инструмента командной строки для обновления настроек службы Tomcat (если Tomcat работает как служба в Windows) - это здесь. Этот инструмент обновляет реестр с правильными настройками. Поэтому, если вы хотите обновить параметр максимальной памяти для службы Tomcat, вы можете запустить это (из каталога tomcat / bin), предполагая имя службы по умолчанию Tomcat5:
tomcat5 //US//Tomcat5 --JvmMx=512
Создайте файл setenv. (Sh | bat) в каталоге tomcat / bin с переменными среды, которые вы хотите изменить.
Сценарий catalina проверяет, существует ли сценарий setenv, и запускает его для установки переменных среды. Таким образом, вы можете изменить параметры только для одного экземпляра tomcat, и его будет проще скопировать в другой экземпляр.
Вероятно, ваше приложение конфигурации создало сценарий setenv, и поэтому tomcat игнорирует переменные среды.
Это решение, дополненное решением Гленна, мне понравилось.
Предложение Сергея работает, и вот некоторые подробности.
Если вы заглянете в каталог bin вашей установки, вы увидите catalina.sh или .bat скрипты. Если вы посмотрите в них, вы увидите, что они запускают setenv.sh или setenv.bat скрипт соответственно, если он существует, для установки переменных среды. Соответствующие переменные среды описаны в комментариях на вверху catalina.sh/bat. Для их использования создайте, например, файл $ CATALINA_HOME / bin / setenv.sh с содержимым
export JAVA_OPTS = "-server -Xmx512m"
Для Windows вам понадобится в setenv.bat что-то вроде
set JAVA_OPTS=-server -Xmx768m
Надеюсь это поможет, Гленн
«Другое» руководство не добавило команду «export», и tomcat не запустился. Я должен был понять это, так как это, в конце концов, файл .sh ... но спасибо за то, что так хорошо изложил его для сонного кодировщика ...
По какой-то причине пакет RPM (например, в CentOS) для tomcat6 имеет init.d, который не использует catalina.sh (который вызывает setnev.sh), другими словами - в CentOS / etc / tomcat6 / tomcat6. conf место для таких конфигураций
Я использую следующее содержимое setenv.bat:
==============setenv.bat============
set JAVA_OPTS=-XX:MaxPermSize=256m -Xms256M -Xmx768M -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=7777,server=y,suspend=n %JAVA_OPTS%
====================================
Он также включает отладку и устанавливает порт отладки на 7777, а также добавляет предыдущее содержимое JAVA_OPTS.
Удобно для виртуальных машин Linux; Используйте для Tomcat 75% общей системной памяти. Ура AWK.
Поместите в начало "{tomcat} /bin/startup.sh"
export CATALINA_OPTS = "-Xmx`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`k"
Мне нравится идея настроить память tomcat6 на основе доступной памяти сервера (это круто, потому что мне не нужно менять настройку после обновления оборудования). Вот моя (немного расширенная настройка памяти):
export CATALINA_OPTS = "-Xmx
`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`k -Xms`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`k -XX:NewSize=`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '`k -XX:MaxNewSize=`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '`k -XX:PermSize=`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '`k -XX:MaxPermSize=`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.15 } '`k"
Поместите его в: "{tomcat} /bin/startup.sh" (например, "/ usr / share / tomcat6 / bin" для Ubuntu 10.10)
Если вы используете Ubuntu 11.10 и apache-tomcat6 (установка из apt-get), вы можете поместить эту конфигурацию в /usr/share/tomcat6/bin/catalina.sh
# -----------------------------------------------------------------------------
JAVA_OPTS = "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m \
-Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m \
-XX:MaxPermSize=512m -XX:+DisableExplicitGC"
После этого вы можете проверить свою конфигурацию с помощью ps -ef | grep tomcat :)
Просто отредактируйте свой скрипт catalina / bin / startup.sh. Добавьте в него следующие команды:
#Adjust it to the size you want. Ignore the from bit.
export CATALINA_OPTS = "-Xmx1024m"
#This should point to your catalina base directory
export CATALINA_BASE=/usr/local/tomcat
#This is only used if you editing the instance of your tomcat
/usr/share/tomcat6/bin/startup.sh
Если вы запускаете Tomcat в Windows, вы можете использовать изящное приложение «Tomcat Monitor», которое поставляется с Tomcat.
Перейдите на вкладку Java. Внизу, под текстовым полем «Параметры Java», вы найдете 3 поля ввода:
Я изменил это и сохранил, но когда я пытаюсь запустить его снова, tomcat не запускается. Как только я вернусь к размеру памяти по умолчанию, я снова смогу запустить tomcat. Подскажите, пожалуйста, что делать?
@Ankita Я больше не работаю с Tomcat ... это слишком сложно. Я перешел на Node.js
Хорошо. Благодарю за ваш ответ.
В моем случае был файл /etc/sysconfig/tomcat5.conf, перезаписывающий все настройки в /etc/tomcat5/tomcat5.conf
Я тоже пробовал CATALINA_OPTS. Я почти уверен, что это работает только для Tomcat 4.0 и более ранних версий.