Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Glassfish жрет память, Web-проект под glassfish жрет память 
:(
    Опции темы
RuselSt
Дата 3.4.2009, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.10.2008

Репутация: нет
Всего: нет



Привет, есть web-проект, написанный с использованием JSF, работает под Glassfish-ом.
И он жутко жрет память, при перезагрузке сразу съедает 600 метров, а дальше по нарастающей переваливает за 1100 (потом перезагрузил). Нужно как-то оптимизировать. Посоветуйте, с чего лучше начать, как найти причину. 
мои варианты пока: 
1). просмотр кода
2). сделать связку Glassfish и JProfiler, прогнать и посмотреть


PM MAIL   Вверх
Asal
Дата 3.4.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



Цитата(RuselSt @  3.4.2009,  14:24 Найти цитируемый пост)
И он жутко жрет память

Любой J2EE контейнер жрал, жрет и будет жрать

Цитата(RuselSt @  3.4.2009,  14:24 Найти цитируемый пост)
при перезагрузке сразу съедает 600 метров

сразу - врятли, только если это супер мега приложение

Цитата(RuselSt @  3.4.2009,  14:24 Найти цитируемый пост)
Нужно как-то оптимизировать

можно указать ему сколько максимум кушать памяти, но не меньше 256 метров
Цитата(RuselSt @  3.4.2009,  14:24 Найти цитируемый пост)
Посоветуйте, с чего лучше начать, как найти причину.

1. 
Цитата(RuselSt @  3.4.2009,  14:24 Найти цитируемый пост)
2). сделать связку Glassfish и JProfiler, прогнать и посмотреть

2.
Цитата(RuselSt @  3.4.2009,  14:24 Найти цитируемый пост)
1). просмотр кода




--------------------
PM MAIL ICQ   Вверх
Asal
Дата 3.4.2009, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



смотрим сюда

Это сообщение отредактировал(а) Asal - 3.4.2009, 17:09


--------------------
PM MAIL ICQ   Вверх
RuselSt
Дата 6.4.2009, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.10.2008

Репутация: нет
Всего: нет



спасибо, буду разбираться..
PM MAIL   Вверх
RuselSt
Дата 13.4.2009, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.10.2008

Репутация: нет
Всего: нет



вообщем, что делал, 
1). в Glassfish добавил опцию <jvm-options>-XX:+HeapDumpOnOutOfMemoryError</jvm-options>, и при очередном OutOfMemory, получил дамп памяти размером 1,2 Gb
2). выбрал анализатор - Eclipse MemoryAnalyzer (остальные пробовал, не подошли, то размер дампа большой, то ошибка при анализе). И анализ четко показал, что память переполняется объектами StatEntry (это мои объекты, хранят строки отчета). 

Перепроверил код, по коду вроде все верно, нигде утечек быть не должно, запускал у себя под профайлером (у заказчика запустить - нет возможности), объекты создаются, и удаляются из памяти. Единственное наше отличие, у заказчика несколько пользователей (немного, среднее число - 40 пользователей). Пока не знаю что делать дальше, создается около 900 тыс. объектов вышеописанного типа, которые сжирают около 900 мб. 
У кого есть какие мысли?,
Может быть такое что эти объекты не успевают удаляться GC? 
PM MAIL   Вверх
Skynin
Дата 13.4.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

Репутация: 1
Всего: 10



Цитата

Может быть такое что эти объекты не успевают удаляться GC? 

Вряд-ли.

Скорее эти 900 тыс. объектов ты не отпускаешь - на них сслыки есть. То есть они - не удаляются.
Сидят в какой-то промежуточной, служебной коллекци да и все.

PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
Asal
Дата 14.4.2009, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



Цитата(Skynin @  13.4.2009,  15:22 Найти цитируемый пост)
Скорее эти 900 тыс. объектов ты не отпускаешь - на них сслыки есть. 

да, это первое что нужно проверить
второе - может и GlassFish не отпускает
попробуйте
Код

<jvm-options>-XMx512MB</jvm-options>

ну или что-то похожее есть (макс размер поедаемой памяти (не меньше 256 MB))

есть тулза - JMetter, можете съэмулировать >40 пользователей

Это сообщение отредактировал(а) Asal - 14.4.2009, 15:09


--------------------
PM MAIL ICQ   Вверх
RuselSt
Дата 30.4.2009, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.10.2008

Репутация: нет
Всего: нет



спасибо всем, нашел причину.
как всегдаsmile, ошибка там где ты ее не ждешь:
у заказчика ошибочно был создан такой пользователь, который и создавал эту кучу объектов.
причина была найдена подробным анализом данных дампа, очень помог встроенный язык запросов YourKit Profiler

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1029 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.