Tomcat: Passing -XX: MaxPermSize не имеет видимого эффекта - PullRequest
1 голос
/ 07 октября 2011

Я пытаюсь развернуть свое приложение в Tomcat, но не смог этого сделать. Я постоянно получаю постоянное пространство OutofMemoryError. Я пробовал различные параметры командной строки (искал разные вопросы, касающиеся этого в стеке потока), например -XX: MaxPermSize, -XX: PermSize, -XX: + CMSClassUnloadingEnabled, -XX: + CMSPermGenSweepingEnabled

Я дал размер permgen как 64, 128, 256, 512, но ни один из них не работает.

Интересно, что когда я получаю сообщение об ошибке, в диспетчере задач я вижу, что процесс java занимает всего около 300 МБ памяти. Я передаю -Xms как 1024m, но все же потребление памяти составляет около 300 МБ.

Ищете мнения о том, что может быть причиной?

Детали моей системы: Dell Latitude 5420 Win XP 32 Bit 4 ГБ ОЗУ

Ответы [ 4 ]

0 голосов
/ 08 октября 2011

Tomcat нужна переменная окружения JAVA_OPTS. Например:

JAVA_OPTS="-XX:MaxPermSize=256m -Xms250m -Xmx650m"
0 голосов
/ 07 октября 2011

Когда вы говорите «постоянно», вы имеете в виду после того, как вы сделали несколько повторных развертываний подряд? Если да, то это общеизвестный недостаток Tomcat, с которым ничего не поделаешь. Увеличение пространства для перманента только задержит неизбежное.

Причина в том, что рефлексия создает классы динамически, которые попадают в постоянное пространство, и их никогда не вернуть. Отсюда и название «perm gen» - это постоянное поколение, которого не касается сборщик мусора.

Законы о сохранении говорят вам, что если у вас есть ограниченная емкость, и вы только добавляете ее, не удаляя, вы в конечном итоге исчерпаете емкость. Вот что с тобой здесь происходит.

0 голосов
/ 07 октября 2011

В дополнение к ответу Удо Фхолла: правильный параметр для максимальной кучи ist -Xmx1024M

0 голосов
/ 07 октября 2011

-Xms=1024 означает, что начальная память равна 1024, но затем, когда она не нужна, она сокращает ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...