2010-02-22 4 views
1

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

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

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

Спасибо.

ответ

1

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

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

+0

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

+0

As of Grails 1.37> = 512 МБ для каждого приложения предлагается для оптимальной производительности. 256mb, вероятно, слишком мало порезает его. Grails - это мощное решение, но оно стоит дорого, буквально. Как вы говорите, память не дешевая ... – virtualeyes

0

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

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

Смежные вопросы