Проблема с памятью PermGen после перехода с одной платформы на другую: что по умолчанию для них обоих
Я перенес свое приложение из IBM JDK (IBM J9 VM) в 64-битную серверную виртуальную машину OpenJDK (сборка 25.131-b11, смешанный режим). В среде IBM JDK мы использовали WebSphere, а в OpenJDK мы использовали Tomcat .
Все было хорошо, пока мы не получили это исключение. Приложение успешно работает в среде IBM JDK и WebSphere.
Exception in thread "ajp-bio-14004-exec-462" java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: PermGen space
В любом случае я могу узнать, что такое PermGen по умолчанию для обеих сред Java, запустив какую-то команду. Я искал в интернете и просмотрел некоторые документы, не повезло. Я тоже пытался убить -3.
2 ответа
Сборка Hotspot 25.131-b11 выглядит как версия OpenJDK 8, однако OpenJDK 8 не выбрасывает пространство PermGen OutOfMemoryError
исключение. Код для его выброса просто отсутствует, поскольку постоянное поколение было удалено из сборщиков мусора.
Вы уверены, что запускаете свое приложение с предполагаемой JVM?
Это зависит от каждой JVM. В IBM инструмент обзора DTFJ должен предоставить информацию,
Для OpenJDK вы можете попробовать использовать инструменты пользовательского интерфейса jvisualvm или jconsole или утилиты командной строки.