Сколько стоит много PERM в Java (1,5 ГБ кажется высоким) - PullRequest
2 голосов
/ 11 мая 2011

Мы запускаем большое Java-приложение, которое находится в стадии интенсивной разработки. Каждые 3–6 месяцев кажется, что мы должны увеличивать объем памяти PERM, или мы рискуем исчерпать память либо при запуске приложения, либо вскоре после выхода в сеть. Приложение размещено на серверах JBoss 4.2 и tomcat.

Наши текущие настройки:

-сервер -Xms12G -Xmx12G -XX: MaxPermSize = 1536M -XX: + UseConcMarkSweepGC -XX: + CMSIncrementalMode

Я могу помочь, но задаюсь вопросом, кажется ли это ужасно высоким.

Кажется, что память PERM очень быстро заполняется при запуске. где-то между 90 и 99%, используя jstat.

Наше веб-приложение состоит из 30 с лишним отдельных военных файлов. В JBoss они развернуты в виде одного большого файла размером 300 МБ + ear.

Это нормально для большого приложения для нас так много ПЕРМ?

Ответы [ 3 ]

6 голосов
/ 11 мая 2011

Это очень много пермгенного пространства.Если он заполняется сразу, это подразумевает почти невероятное количество классов.Много ли дублируется в библиотеках этих 30 военных файлов?Вы можете сэкономить много места, загружая общие библиотеки из общего загрузчика классов ближе к корню, а не в каждое отдельное веб-приложение.Попробуйте установить общие библиотеки в каталогах сервера.

0 голосов
/ 11 мая 2011

Рассматривали ли вы, что в вашем приложении может быть утечка памяти?Попробуйте использовать инструмент профилирования, такой как JProfiler или Eclipse MAT , для анализа использования памяти вашим приложением.Я видел, что простые утечки памяти могут вызвать огромные сбои в течение определенного периода времени.

0 голосов
/ 11 мая 2011

Неужели затраты на 1,5 ГБ для управления кучей в 12 ГБ, а также код класса / статические данные действительно так велики?

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