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

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

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

4 ответа

Решение

Вот хорошая статья под названием
Мой совет по настройке кучи JVM, держите пальцы подальше от ручек!

Что касается мониторинга см. Этот инструмент: http://www.lambdaprobe.org/d/index.htm

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам