Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Как определить причину PermGen: out of memory ? |
Автор: 4EJIOBEK 3.11.2010, 12:04 |
Всем привет! Проблема в следующем: есть корпоративное ПО(с плагинно-модульной архитектурой) написанное на джава. У некоторых пользователей, в основном при работе с БД возникает ошибка, PermGen : out of Memory. Параметры запуска приложения у всех одинаковые. В приложении может быть отличие только в количестве одновременно подключенных модулей. Подскажите, пожалуйста, как можно выявить причину данной проблемы!? или посоветуйте какой-нить познавательный ресурс по permanent generation Можно профилировать только удаленно(пользователи территориально находятся в разных местах). |
Автор: Kircul 3.11.2010, 12:20 |
Могу посоветовать для начала посмотреть данную http://conference.javatalks.ru/data/JVMTalk.pdf, особенно 10-ю и 31-ю страници. Как видно в зависимости от платформы при одинаковых параметрах запуска приложения можгут выбираться как разные JIT-компиляторы так и сборщики мусора, со своими пределами памяти. Возможно это сможет немного помочь. А вообще было бы насплохо чтобы вы привели тут параметры запуска приложения. |
Автор: Старовъръ 3.11.2010, 21:03 |
Наверное, соединения к БД не закрываются.. |
Автор: garbuz 3.11.2010, 22:16 |
Запустите приложение под профайлером и посмотрите где утечка. |
Автор: Zlatogorov 3.11.2010, 23:56 |
garbuz, Именно, а лучше сделать дамп и засунуть в аналайзер, там сразу видно какие классы весят так что уборщик до них не добирается. |
Автор: 4EJIOBEK 7.11.2010, 20:55 |
ПО корпоративное, разработкой отдельных модулей занимаются разные команды. Пользователи могут пользоваться несколькими плагинами одновременно. Но именно во время работы с модулем разработкой которого занималась наша команда возникает данная ошибка(судя по логам, именно во время выборки данных с локальной БД). Соединения с БД закрываются. Строка запуска у всех одинаковая - "java -jar Program.jar"(судя по приведенной презентации с параметром -client). Возникает ошибка у пользователей с малым объемом оперативки 128-256 метров. Хотя размер PermGen должен формироваться одинаковым размером 64 метра(по умолчанию ). сделал снепшот YourKitProfiler'ом, но понять по статической картине почему растем именно permanent generation не получается. Спасибо всем за помощь) |