![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
RuselSt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 27.10.2008 Репутация: нет Всего: нет |
Привет, есть web-проект, написанный с использованием JSF, работает под Glassfish-ом.
И он жутко жрет память, при перезагрузке сразу съедает 600 метров, а дальше по нарастающей переваливает за 1100 (потом перезагрузил). Нужно как-то оптимизировать. Посоветуйте, с чего лучше начать, как найти причину. мои варианты пока: 1). просмотр кода 2). сделать связку Glassfish и JProfiler, прогнать и посмотреть |
|||
|
||||
Asal |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 26.12.2006 Где: Минск Репутация: 4 Всего: 7 |
Любой J2EE контейнер жрал, жрет и будет жрать сразу - врятли, только если это супер мега приложение можно указать ему сколько максимум кушать памяти, но не меньше 256 метров 1. 2. |
|||
|
||||
Asal |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 26.12.2006 Где: Минск Репутация: 4 Всего: 7 |
||||
|
||||
RuselSt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 27.10.2008 Репутация: нет Всего: нет |
спасибо, буду разбираться..
|
|||
|
||||
RuselSt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 27.10.2008 Репутация: нет Всего: нет |
вообщем, что делал,
1). в Glassfish добавил опцию <jvm-options>-XX:+HeapDumpOnOutOfMemoryError</jvm-options>, и при очередном OutOfMemory, получил дамп памяти размером 1,2 Gb 2). выбрал анализатор - Eclipse MemoryAnalyzer (остальные пробовал, не подошли, то размер дампа большой, то ошибка при анализе). И анализ четко показал, что память переполняется объектами StatEntry (это мои объекты, хранят строки отчета). Перепроверил код, по коду вроде все верно, нигде утечек быть не должно, запускал у себя под профайлером (у заказчика запустить - нет возможности), объекты создаются, и удаляются из памяти. Единственное наше отличие, у заказчика несколько пользователей (немного, среднее число - 40 пользователей). Пока не знаю что делать дальше, создается около 900 тыс. объектов вышеописанного типа, которые сжирают около 900 мб. У кого есть какие мысли?, Может быть такое что эти объекты не успевают удаляться GC? |
|||
|
||||
Skynin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 1 Всего: 10 |
Вряд-ли. Скорее эти 900 тыс. объектов ты не отпускаешь - на них сслыки есть. То есть они - не удаляются. Сидят в какой-то промежуточной, служебной коллекци да и все. |
|||
|
||||
Asal |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 26.12.2006 Где: Минск Репутация: 4 Всего: 7 |
да, это первое что нужно проверить второе - может и GlassFish не отпускает попробуйте
ну или что-то похожее есть (макс размер поедаемой памяти (не меньше 256 MB)) есть тулза - JMetter, можете съэмулировать >40 пользователей Это сообщение отредактировал(а) Asal - 14.4.2009, 15:09 |
||||
|
|||||
RuselSt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 27.10.2008 Репутация: нет Всего: нет |
спасибо всем, нашел причину.
как всегда ![]() у заказчика ошибочно был создан такой пользователь, который и создавал эту кучу объектов. причина была найдена подробным анализом данных дампа, очень помог встроенный язык запросов YourKit Profiler |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |