Збільшення пермгенного простору


88

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

Дякую


Я перевіряв подібне запитання раніше, але мені не допомагає. Куди йде -XX: NewSize = 2,125 м?
Бланка

можливий дублікат угоди з помилкою "java.lang.OutOfMemoryError: PermGen space"
Raedwald

Відповіді:


142

Ви можете використовувати:

-XX:MaxPermSize=128m

щоб збільшити простір. Але це зазвичай лише відкладає неминуче.

Ви також можете дозволити PermGen збирати сміття

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

Зазвичай це відбувається при проведенні багато повторних розгортань. Я здивований, що ви використовуєте щось на зразок індексації. Використовуйте virtualvm або jconsole для моніторингу простору Пермі та перевірте його рівень після розігріву індексації.

Можливо, вам варто розглянути можливість переходу на інший JVM, такий як IBM JVM. Він не має постійного покоління і не застрахований від цього питання.


Дякую!! Але де я повинен це записати ?? Я здогадуюсь одним випадком тут: tomcat / conf Я помиляюся ??
Бланка

1
Для tomcat ви можете створити змінну середовища CATALINA_OPTS із значенням цих об'єднаних параметрів. Сценарій запуску додасть їх до командного рядка Java перед запуском tomcat. Це неможливо зробити за допомогою конфігурації tomcat, оскільки JVM вже налаштовано на той момент.
Пітер Тиллеманс,

2
Якщо це FreeBSD, додайте параметри до файлу /etc/rc.conf. Спочатку прочитайте скрипт запуску tomcat, щоб побачити точний параметр, який він буде шукати.
Брайан Ноблауч,

3
У OpenJDK 7 CMSPermGenSweepingEnabled припинено на користь CMSClassUnloadingEnabled
Петр Гладких

12

Для tomcat ви можете збільшити простір пермГем за допомогою

 -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

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


3

якщо ви виявили, що параметри пам'яті не використовуються, і для того, щоб змінити параметри пам'яті, я використав tomcat7w або tomcat8w у папці \ bin. Потім повинно з'явитися таке:

монітор tomcat

Клацніть на вкладку Java і додайте аргументи. Restart tomcat


@ Jérémie BI не має достатньо точок репутації, щоб додати зображення безпосередньо.
Kevin STS

0

У дистрибутивах, подібних до Debian, ви встановлюєте це /etc/default/tomcat[67]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.