Как настроить параметры памяти Tomcat 5.5 JVM без использования программы конфигурации

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

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

Ответ 1

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

Если вы посмотрите в каталоге установочного bin, вы увидите файл catalina.sh или .bat. Если вы посмотрите в них, вы увидите, что они запускают setenv.sh или setenv.bat script соответственно, если он существует, для установки переменных среды. Соответствующие переменные среды описаны в комментариях на top of catalina.sh/bat. Чтобы использовать их, создайте, например, файл $ CATALINA_HOME/bin/setenv.sh с содержимым

export JAVA_OPTS="-server -Xmx512m"

Для Windows вам понадобится, в setenv.bat, что-то вроде

set JAVA_OPTS=-server -Xmx768m

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

Ответ 2

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

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

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

Ответ 3

Используйте переменную среды CATALINA_OPTS.

Ответ 4

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

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

Ответ 6

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

Положите начало "{tomcat}/bin/startup.sh"

export CATALINA_OPTS="-Xmx`cat /proc/meminfo | grep MemTotal | awk '{ print $2*0.75 } '`k"

Ответ 7

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

tomcat5 //US//Tomcat5 --JvmMx=512

Ответ 8

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

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

Ответ 9

Не уверен, что это будет подходящее решение для вас. Но единственный способ для мониторинга параметров памяти tomcat, а также количества подключений и т.д., Который действительно работает для нас, - Lambda Probe.

Это показывает большую часть информации, которая нам нужна для настройки Tomcat. Мы протестировали его с Tomcat 5.5 и 6.0, и он отлично работает, несмотря на бета-статус и дату последнего обновления в конце 2006 года.

Ответ 10

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

Ответ 11

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

Перейдите на вкладку Java. Внизу, ниже текстового поля "Параметры Java", вы найдете 3 поля ввода:

  • Начальный пул памяти ___ MB
  • Максимальный пул памяти ___ MB
  • Размер стека строк _____ KB

Ответ 12

Просто отредактируйте свой каталог /bin/startup.sh script. Добавьте в него следующие команды:

#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

Sailab: http://www.facejar.com/member/page-id-477.html

Ответ 13

В моем случае был файл /etc/sysconfig/tomcat 5.conf, перезаписывающий все настройки в файле/etc/tomcat5/tomcat5.conf