jvm - ¿Cómo volcar Permgen?
profiling (3)
No es posible ''vaciar permgen'' como se hace para el montón.
Además de jmap -permstat
tal como lo han presentado otros, puede analizar el volcado de pila estándar para arrojar algo de luz sobre su generación permanente, tal como se describe en esta entrada del blog: "La generación desconocida: Perm" .
Debido a que un volcado de pila realmente no contiene mucha información sobre el espacio permanente, los problemas de perm son difíciles de abordar. Recientemente, encontré este gran 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 usar Eclipse Memory Analyzer para analizar esta generación "desconocida". De esto se trata este blog.
Quería tomar el volcado del Permgen de un servidor de aplicaciones.
No quiero usar -XX:+TraceClassLoading -XX:+TraceClassUnloading
ya que no quiero reiniciar el servidor. Tampoco quiero usar jconsole
.
Allí, cualquier herramienta como jmap
(utilizada para jmap
volcado no encontró ninguna opción para permgen) para obtener el permgen de modo que solo pueda suministrar el pid
.
jmap -permstat <pid>
jmap -permstat <pid>
va a producir una salida así:
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
Esto no es un volcado completo, pero hacer eso te permitirá hacer una investigación.
Todavía estoy buscando cómo encontrar más información.