Как сбросить Пермген?

Я хотел взять дамп Permgen сервера приложений.

Я не хочу использовать -XX:+TraceClassLoading -XX:+TraceClassUnloading, так как не хочу перезапускать сервер, а также не хочу использовать jconsole.

У меня есть какой-либо инструмент, такой как jmap (используемый для дампа кучи, не нашел никакого варианта для permgen), чтобы получить permgen, чтобы я мог предоставить только pid.


person Vikas Madhusudana    schedule 02.11.2010    source источник
comment
Это помогло вам решить вашу проблему, Викас?   -  person Amir Afghani    schedule 02.11.2010
comment
Я пробовал это раньше, он говорил, что недопустимый параметр и показывал использование, в котором говорится, что разрешены только -histo и -dump (дамп кучи). Я использую jmap внутри jdk/bin, это правильный   -  person Vikas Madhusudana    schedule 03.11.2010
comment
Параметр permstat недоступен в MS Windows.   -  person kschneid    schedule 03.11.2010


Ответы (2)


jmap -permstat <pid>

собирается произвести такой вывод:

30337 intern Strings occupying 2746200 bytes.
class_loader    classes bytes   parent_loader   alive?  type

<bootstrap> 2031    7253392   null      live    <internal>
0x517474f0  1   1760      null      dead    sun/reflect/DelegatingClassLoader@0x43f95d38
0x4f83f670  1   1744    0x4ebfb8e8  dead    sun/reflect/DelegatingClassLoader@0x43f95d38
[...]

total = 287 10020   35889952        N/A     alive=3, dead=284       N/A  

Это не полный дамп, но это позволит вам провести некоторое расследование.

Я все еще ищу, как найти больше информации.

person Guillaume Coté    schedule 25.05.2011

Невозможно «сбросить permgen», как это делается для кучи.

В дополнение к jmap -permstat, как было представлено другими, вы можете проанализировать стандартный дамп кучи, чтобы пролить свет на ваше постоянное поколение, как описано в эта запись в блоге: "Неизвестное поколение: Пермь".

Поскольку дамп кучи на самом деле не содержит много информации о постоянном пространстве, проблемы с пермами трудно решить. Недавно я нашел эту замечательную статью от Sporar, Sundararajan и Kieviet. Авторы проливают свет на постоянное поколение. Конечно, мне нужно было сразу же проверить, могу ли я и как использовать Eclipse Memory Analyzer для анализа этого «неизвестного» поколения. Это то, о чем этот блог.

person fglez    schedule 17.12.2010