У меня возникла проблема с нашим мониторингом JMX. Мы отслеживаем perm gen некоторых JVM с помощью JMX. Но время от времени имя MBean меняется с «PS Perm Gen» на «Perm Gen» или наоборот. Это происходит при перезапуске сервера Tomcat, но не при каждом перезапуске.
версия jvm — 1.5.0_16.
Кто-нибудь сталкивался с этой проблемой и, возможно, есть решение?
решение1
Вероятно, вы используете разные сборщики мусора. Имя PermGen
области памяти отличается в зависимости от выбранного сборщика мусора:
-XX:+UseParallelGC
: PS Пермген-XX:+UseConcMarkSweepGC
: CMS PermGen-XX:+UseSerialGC
: ПермГен
Похоже, что Tomcat запускается либо с последовательным (остановившим мир) сборщиком, либо с параллельным сборщиком.
Проверьте наличие несоответствий в сценариях запуска или настройках среды.
Обновлять: Настройки сборщика мусора и памяти зависят отЭргономика JVM, что означает, что они автоматически выбираются при запуске на основе характеристик компьютера, на котором запущена JVM. Я не могу найти никаких ссылок прямо сейчас, но я думаю, что они основаны на архитектуре ЦП и общей доступной памяти.
Я предлагаю вам указать один из сборщиков мусора в ваших скриптах запуска. В зависимости от вашего приложения, может быть не очень хорошо выбирать случайный сборщик мусора.