Память Tomcat и виртуальные хосты - PullRequest
1 голос
/ 22 февраля 2010

У меня есть VPS, на котором я обслуживаю Tomcat 6.0. 500 Мб памяти было достаточно, когда у меня было только два приложения. На прошлой неделе я развернул другое веб-приложение и сформировал новый виртуальный хост, редактирующий Tomcat server.xml. Но ответы сервера замедляются, linux начал кушать своп. Когда я увеличил память на 750 мб, она снова стала стабильной. Но память не такая дешевая, поэтому я не буду рад платить 250 МБ ОЗУ за каждое дополнительное приложение.

Является ли "250 МБ дополнительной памяти" нормальным для каждого веб-приложения? Есть ли решение, чтобы уменьшить эту стоимость? Например, оказывает ли положительное влияние «размещение общих библиотек этих приложений в общей папке Tomcat» на память и производительность Tomcat?

Примечание. Развернутые приложения - это веб-приложения, использующие библиотеки Spring, hibernate, sitemesh и связанные с ними файлы, размер файла war составляет до 30 МБ.

Спасибо.

Ответы [ 2 ]

1 голос
/ 22 февраля 2010

Маловероятно, что эта память используется самими классами Spring / Hibernate / и т.д. Таким образом, размер их файлов .jar не будет иметь большого значения. Помещение этих библиотек в каталог общей библиотеки Tomcat поможет сэкономить немного памяти, так как будет загружена только одна копия этих классов, но это не сэкономит много.

Разве не более вероятно, что ваши приложения просто используют столько памяти для данных и так далее? Вам нужно использовать профилировщик, чтобы сначала выяснить, что потребляет кучу памяти. Пока вы не знаете проблему, она не слишком полезна для поиска конкретных решений.

0 голосов
/ 22 февраля 2010

Я думаю, вам нужно измерить потребление памяти приложения. Вы можете использовать JProfiler или Java6 build в инструментах профилирования, таких как VisualVM и JHat (лучший способ начать).

Проверьте эту ссылку для получения дополнительной информации: http://java.sun.com/developer/technicalArticles/J2SE/monitoring/

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