Увеличить пространство пермгена

Я работаю с Tomcat 6.0, и в то время как я индексирую (а не когда запускаю Tomcat), у меня ошибка permgen space.
Как я мог увеличить это пространство??

Спасибо

5 ответов

Решение

Ты можешь использовать:

-XX:MaxPermSize=128m

увеличить пространство. Но это обычно только откладывает неизбежное.

Вы также можете включить сборку мусора в PermGen.

-XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled

Обычно это происходит при большом количестве повторных развертываний. Я удивлен, что у вас есть что-то вроде индексации. Используйте virtualvm или jconsole, чтобы отслеживать пространство пермского уровня и проверять его уровни после прогрева индексации.

Может быть, вам стоит подумать о переходе на другую JVM, такую ​​как IBM JVM. Он не имеет постоянного поколения и неуязвим для этой проблемы.

Для tomcat вы можете увеличить пространство permGem, используя

 -XX:MaxPermSize=128m

Для этого вам нужно создать (если он еще не существует) файл с именем setenv.sh в папке tomcat/bin и включить в него следующую строку

   export JAVA_OPTS="-XX:MaxPermSize=128m"

Ссылка: http://wiki.razuna.com/display/ecp/Adjusting+Memory+Settings+for+Tomcat

Если вы обнаружили, что настройки памяти не используются, и для изменения настроек памяти я использовал tomcat7w или tomcat8w в папке \bin. Затем должно появиться следующее:

монитор кота

Перейдите на вкладку Java и добавьте аргумент arguments.restart.

Вы также можете увеличить его с помощью аргументов VM в вашей IDE. В моем случае я использую Tomcat v7.0, который работает на Eclipse. Для этого дважды щелкните на своем сервере (Tomcat v7.0). Нажмите на ссылку "Открыть конфигурацию запуска". Перейдите на вкладку "Аргументы". Добавьте -XX:MaxPermSize=512m в список аргументов виртуальной машины. Нажмите "Применить", а затем "ОК". Перезагрузите ваш сервер.

В Debian-подобных дистрибутивах вы устанавливаете это в /etc/default/tomcat[67]

Другие вопросы по тегам