Какие параметры памяти 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. Как всегда, больше памяти поможет ускорить процесс.