2010-11-02 9 views
20

Quería tomar el volcado del Permgen de un servidor de aplicaciones.¿Cómo botar Permgen?

No quiero usar -XX:+TraceClassLoading -XX:+TraceClassUnloading porque no quiero reiniciar el servidor, tampoco quiero usar jconsole.

No hay ninguna herramienta como jmap (utilizada para amontonar volcado no encontré ninguna opción para permgen) para obtener el permgen para que yo pueda suministrar solo el pid.

+0

¿Esto lo ayudó a resolver su problema Vikas? –

+0

He intentado esto antes, estaba diciendo que la opción no válida y mostrando el uso que dice solo -histo y -dump (heap dump) están permitidos. Estoy usando el jmap dentro de jdk/bin este es el correcto –

+0

El 'permstat 'la opción no está disponible en MS Windows. – kschneid

Respuesta

1
jmap -permstat <pid> 
10

No es posible "volcar permgen", ya que está hecho para el montón.

Además de jmap -permstat que otros han presentado, puede analizar el volcado de pila estándar para arrojar algo de luz sobre su generación permanente como se describe en this blog entry: 'The Unknown Generation: Perm'.

Dado que un volcado de pila no contiene realmente mucha información sobre el espacio permanente, los problemas de ondulación permanente son difíciles de abordar. Recientemente, encontré este excelente artículo de Sporar, Sundararajan y Kieviet. Los autores arrojan algo de luz sobre la generación permanente. Por supuesto, tuve que comprobar de inmediato si puedo utilizar el Eclipse Memory Analyzer y cómo puedo analizar esta generación "desconocida". De esto se trata este blog.

15
jmap -permstat <pid> 

va a producir una salida de esa manera:

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/[email protected] 
0x4f83f670 1 1744 0x4ebfb8e8 dead sun/reflect/[email protected] 
[...] 

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

Ésta no es una copia completa, pero haciendo eso va a permitir hacer un poco de investigación.

Todavía estoy buscando cómo encontrar más información.

Cuestiones relacionadas