Класс Java (PermGen) утечка памяти (веб-приложения) - Универсальное решение?

У меня есть генерал перманента утечка памяти, которую я знаю. Профилирование использующий jvisualvm показывает, что при выполнении горячего развертывания (например, остановка и запускают приложение, не уничтожая JVM, у кота, WebSphere, WebLogic и т.д.) - пространство PermGen постоянно увеличивается.

После чтения, с помощью jhat, и других усовершенствованных инструментов я понял, что у меня, вероятно, есть ссылка на WebAppClassLoader от класса где-нибудь в его загрузчиках родительского класса.

Я не мог придавить его даже при том, что я сделал некоторые значительные основанные на JavaScript запросы на jhat

Разве там простой не является утилита, которая узнает, кто ответственен за Вас, классифицируют загрузчик, который не будет собран "мусор" (таким образом позволяющий сборку "мусора" классов, загруженных им)?

Я попробовал JProfiler, jvisualvm, jhat, и много Google

всем друзьям LMGTFY - я провел форумы чтения приблизительно полутора дней с шагом со стороны инструкций по шагам, никакой удачи. Я ищу утилиту или кодирую это выводы:

Возразите, что X из класса Y являются единственным корнем GC, который мешает Вашим классам удаляться.

14
задан Wes 13 November 2012 в 20:17
поделиться

3 ответа

Есть неудовлетворительное, но простое решение: Не горячая штучка в производственных условиях. Вы можете установить кластер из двух контейнеров для сервлетов и обновлять их по одному с перезагрузкой.

10
ответ дан 1 December 2019 в 13:33
поделиться

Здесь тоже мало указателей, http://minmaxmim.blogspot.com/2010/01/javalangoutofmemoryerror-java-heap.html

также проверьте статью о пространстве javalangoutofmoryerror-permgen.

.
1
ответ дан 1 December 2019 в 13:33
поделиться

Реалии частых передислокаций... Лучшее, что вы можете сделать, это увеличить размер перм гена, используя -XX:MaxPermSize=256m. Это может купить вам несколько перераспределений больше за jvm перезагрузки. Или прочитайте по адресу http://my.opera.com/karmazilla/blog/2007/03/15/permgen-strikes-back

Остерегайтесь, что если классные загрузчики вообще не могут быть gc-ed, то возиться с jvm совсем не помогут. Лучше забудьте о частых внедрениях, особенно в производстве, так как dev это удобно, тем не менее.

5
ответ дан 1 December 2019 в 13:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: