weblogic, jdk1.5 проблемы с памятью - PullRequest
1 голос
/ 17 августа 2011

Я использую weblogic 9.2, jdk1.5 и oracle 10g для своего приложения и получаю некоторые проблемы с памятью

У меня есть сервлет отчетов для 4 различных типов отчетов миллионов записей в БД

Теперь моя проблема в том, что когда я запускаю отчет по одному (для одного пользователя), не возникает проблем с памятью, скажем

при выполнении отчета объем памяти составлял 775 МБ по окончании отчета объем памяти составлял 836 мб

Теперь

раньше, когда параллельные пользователи запрашивают отчеты, начинается утечка памяти

даже после окончания каждого отчета восстанавливается только немного памяти, скажем

при выполнении отчетов объем памяти составлял 33 МБ когда отчеты заканчивали выполнение памяти было 86 мб

он остается на 86 МБ навсегда, пока следующий запрос не получит java.lang.OutOfMemoryError

Я вызывал System.gc после завершения каждого отчета, но он уменьшается до 86 МБ

~ Я создаю экземпляр объекта отчета внутри метода post сервлета для каждого запроса

1 Ответ

0 голосов
/ 18 августа 2011

Какова ваша куча с помощью Xmx и Xms

Похоже, вы создаете много временных объектов при запуске отчета, которые находятся в пространстве Eden (в пространстве Young).Они могут быть настроены путем изменения значений Xms по отношению к Xmx.

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

Я предлагаю вам профилировать ваше приложениес VisualVM или YourKit.Также прочитайте Устранение неисправностей утечек памяти

...