2015-02-05 5 views
0

У меня есть два экземпляра веб-приложения, работающего на двух разных серверах на tomcat. Когда я добавляю конфигурацию репликации сеанса с помощью многоадресной рассылки, она дает мне ошибку пермг в течение следующих пяти минут (у меня было всего два активных сеанса). Но за эти пять минут все выглядит нормально: сеансы на одном сервере успешно реплицируются на другой сервер. Когда у меня нет настройки многоадресной рассылки, я не вижу проблем с пердженями.Ошибка Permgen при многоадресной передаче

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

ответ

0

Permgen используется для хранения метаданных о классах. Количество экземпляров этих классов не зависит от них. Количество сеансов (например, экземпляров), вероятно, не имеет значения. Скорее всего, это простой способ использования (и, возможно, динамически генерирующих) классов для поддержки репликации сеанса, которая исчерпывает perm gen.

Начать увеличивать размер perm gen, явно устанавливая MaxPermSize property.

Рассмотрим переход к jdk 8, который изменяет способ управления метаданными.

http://java.dzone.com/articles/java-8-permgen-metaspace

+0

Thanks Brett. Количество раз, когда класс используется для поддержки репликации сеанса, пропорционален количеству активных сеансов, которые реплицируются. Поэтому он исчерпывает PermGen. Имеет смысл. И когда я проверил количество активных сеансов, их было 1500, когда в сети не было пользователя. Все сеансы имеют размер 0 байт. Каждый сеанс создается каждую минуту с двумя атрибутами. Это «_psiprobe_la_ip» и «_lambda_probe_la_ip». Я не знаю, почему. Мы используем psi-зондовый инструмент для администрирования tomcat. Этот инструмент создает сеансы раз в минуту? –

+0

No - ** 1 ** java.lang.Class экземпляр для определенного класса, независимо от того, сколько экземпляров этого класса у вас есть (игнорируя, например, несколько веб-приложений с одним и тем же классом в одной JVM). Только файл java.lang.Class хранится в PermGen, а не в экземплярах объекта. Не стесняйтесь ознакомиться с [этой моей блога моей] (http://java.jiderhamn.se/2011/12/11/classloader-leaks-i-how-to-find-classloader-leaks-with-eclipse-memory -analyser-mat /) о том, как найти утечку, и [эта моя библиотека] (https://github.com/mjiderhamn/classloader-leak-prevention), которая может помочь вам избежать этой проблемы. –

 Смежные вопросы

  • Нет связанных вопросов^_^