Какие параметры запуска Tomcat JVM, связанные с памятью, стоит настроить?

Я пытаюсь понять тонкое искусство настройки параметров памяти Tomcat. В этом квесте у меня есть следующие три вопроса:

  • Какие параметры запуска JVM, связанные с памятью, стоит установить при запуске Tomcat? Почему?
  • Каковы полезные эмпирические правила при точной настройке параметров памяти для установки Tomcat?
  • Как вы отслеживаете потребление памяти вашей активной установкой Tomcat?

person knorv    schedule 12.06.2010    source источник


Ответы (4)


В этом посте были ссылки, которые больше не действительны.

person Romain Hippeau    schedule 13.06.2010
comment
Ссылки, указанные здесь, больше не доступны/онлайн. - person AndreasRu; 22.05.2020
comment
Ссылки больше не действительны. - person Romain Hippeau; 23.05.2020

Какие параметры запуска JVM, связанные с памятью, стоит установить при запуске Tomcat? Почему?

Я бы сказал, что ответ зависит от столь многих факторов, что невозможно дать общий ответ. Например:

  • Параметры памяти будут сильно зависеть от поведения веб-приложений, которые вы запускаете внутри своего Tomcat. Проголодались ли веб-приложения по памяти? Является ли их использование памяти цикличным? Это зависит от нагрузки? Используют ли они / полагаются на кэши в куче?
  • Вы регулярно выполняете «горячее» повторное развертывание своих веб-приложений? Делают ли веб-приложения трюки с загрузчиком классов?
  • Есть ли у веб-приложений особые требования к производительности; например вы должны выполнить 95% запросов в течение определенного времени?
  • Можете ли вы игнорировать требования к памяти других экземпляров Tomcat/других приложений, работающих на том же компьютере?

Ваша лучшая стратегия — использовать JMX/jconsole/etc, чтобы увидеть, как работает GC в ваших экземплярах Tomcat. Если вы недовольны тем, что видите, затем рассмотрите возможность настройки GC.

(И прочитайте связанную статью в ответе @Romain!)

person Stephen C    schedule 13.06.2010

В основном, большинство людей настраивают -Xmx, что означает память, зарезервированную для кучи Java. Если компьютер, на котором работает Tomcat, не запускает ничего другого, что потребляет ОЗУ, и вы не выполняете много операций ввода-вывода (что выгодно благодаря использованию ОЗУ в качестве кеша), обычно имеет смысл позволить Tomcat использовать как можно больше памяти.

Прошли годы с тех пор, как мне в последний раз приходилось настраивать Tomcat, но настройка сборки мусора была полезной.

Используйте любой инструмент управления JMX для мониторинга использования памяти; JConsole поставляется с JDK и очень полезен.

person alex    schedule 12.06.2010

Два параметра Java для настройки — это -Xmx и -Xms, которые устанавливают максимальный объем памяти, доступный для JVM, и начальную память, используемую JVM. Краткий man java объяснит, как использовать -Xmx и -Xms. Как всегда, больше памяти поможет ускорить процесс.

person Michael Shopsin    schedule 03.08.2010