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

88

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

Благодарность

Бланка
источник
Раньше я проверял аналогичный вопрос, но мне не помогают. Куда идет -XX: NewSize = 2,125 м?
Blanca
возможный дубликат работы с ошибкой «java.lang.OutOfMemoryError: PermGen space»
Раэдвальд,

Ответы:

142

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

-XX:MaxPermSize=128m

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

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

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

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

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

Питер Тиллеманс
источник
Благодарность!! Но где мне это записать ?? Думаю, здесь одним словом: tomcat / conf Я ошибаюсь ??
Blanca
1
Для tomcat вы можете создать переменную среды CATALINA_OPTS со значением, объединившим эти параметры. Сценарий запуска добавит их в командную строку Java перед запуском tomcat. Это невозможно сделать из конфигурации tomcat, поскольку JVM уже настроена в этот момент.
Питер Тиллеманс
2
Если это FreeBSD, добавьте параметры в файл /etc/rc.conf. Сначала прочтите сценарий запуска tomcat, чтобы увидеть точный параметр, который он будет искать.
Брайан Ноблауч
3
В OpenJDK 7 CMSPermGenSweepingEnabled устарел в пользу CMSClassUnloadingEnabled
Петр Гладких
12

Для 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

Парокш Саксена
источник
1
export JAVA_OPTS="-XX:MaxPermSize=128m"работал у меня с Clojure + lein repl
Джефф
3

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

пользователь3375152
источник
3

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

кот монитор

Щелкните вкладку Java и добавьте аргументы. Перезапустите tomcat

Кевин СТС
источник
@ Jérémie BI не имеет достаточно очков репутации, чтобы добавлять изображение напрямую.
Кевин СТС
0

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

der_do
источник