Как настроить параметры памяти Tomcat 5.5 JVM без использования программы настройки - PullRequest
42 голосов
/ 13 ноября 2008

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

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

Ответы [ 13 ]

71 голосов
/ 03 декабря 2008

Предложение Сергея работает, а вот еще немного подробностей.

Если вы загляните в каталог 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

Надеюсь, это поможет, Гленн

24 голосов
/ 28 ноября 2008

Создайте файл setenv. (Sh | bat) в каталоге tomcat / bin с переменными среды, которые вы хотите изменить.

Сценарий catalina проверяет, существует ли сценарий setenv, и запускает его для установки переменных среды. Таким образом, вы можете изменить параметры только для одного экземпляра Tomcat и проще скопировать его в другой экземпляр.

Возможно, ваше приложение для настройки создало сценарий setenv, поэтому tomcat игнорирует переменные окружения.

5 голосов
/ 21 ноября 2011

Если вы используете 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:)

5 голосов
/ 13 ноября 2008

Используйте переменную окружения CATALINA_OPTS.

3 голосов
/ 19 октября 2010

Удобно для виртуальных машин Linux; Используйте 75% вашей общей системной памяти для Tomcat. Yay AWK.

Поместить в начало "{tomcat} /bin/startup.sh"

export CATALINA_OPTS="-Xmx`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`k"
3 голосов
/ 06 сентября 2010

Я использую следующее 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.

2 голосов
/ 13 ноября 2011

Мне нравится идея установки памяти 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 } '` к "* * 1 010

Поместите его в: "{tomcat} /bin/startup.sh" (например, "/ usr / share / tomcat6 / bin" для Ubuntu 10.10)

2 голосов
/ 18 ноября 2008

Просто, чтобы добавить к предыдущему комментарию, документация для инструмента командной строки для обновления настроек службы Tomcat (если Tomcat работает как служба в Windows): здесь . Этот инструмент обновляет реестр с правильными настройками. Поэтому, если вы хотите обновить параметр max memory для службы Tomcat, вы можете запустить ее (из каталога tomcat / bin), предполагая имя службы по умолчанию Tomcat5:

tomcat5 //US//Tomcat5 --JvmMx=512
1 голос
/ 20 июня 2012

Если вы запускаете Tomcat в Windows, вы можете использовать удобное приложение «Tomcat Monitor», которое поставляется с Tomcat.

Перейдите на вкладку Java. Внизу, под текстовой областью «Параметры Java», вы найдете 3 поля ввода:

  • Начальный пул памяти _ __ МБ
  • Максимальный пул памяти _ __ МБ
  • Размер стека потоков _ ____ КБ
1 голос
/ 13 ноября 2008

Если вы запустите Tomcat вручную (не в качестве службы), то переменная среды CATALINA_OPTS - это то, что вам нужно. Если вы запустите его как службу, то настройки, вероятно, будут храниться где-то в реестре. На моей машине установлен Tomcat 6, и я нашел настройки с помощью клавиши HKLM\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...