java - oom - ¿Puedo generar un archivo HPROF a voluntad?
java memory analyzer (4)
Sí. Puede generar un archivo hprof (que contiene el uso de memoria del montón) sobre la marcha utilizando la herramienta jmap, que se envía con Java VM de Sun:
jmap -dump: file = <nombre_archivo> <pid>
Tengo un proceso de java que está actuando de forma dudosa. Me gustaría ver qué pasa con las diversas herramientas de análisis de HPROF.
¿Cómo genero uno sobre la marcha?
jconsole ahora tiene la capacidad de crear un volcado en el directorio de trabajo actual de la aplicación.
- Conéctate a tu instancia habilitada para JMX
- Vaya a com.sun.management -> HotspotDiagnostic -> Operations
- Rellene p0 para nombrar el volcado de pila
- presione el botón heapDump
VisualVM puede ayudarlo a profundizar en lo que está haciendo su proceso, incluida la capacidad de forzar arbitrariamente un volcado de pila en un proceso en ejecución.
Debe iniciar el proceso de Java con los argumentos correctos, que varían un poco según la versión de JVM. Luego, envíe una señal de QUIT
al proceso para generar un nuevo archivo.
Normalmente, la salida se genera cuando sale la máquina virtual, aunque esto se puede desactivar configurando la opción "dump on exit" a "n" (doe = n). Además, se genera un perfil cuando se presiona Ctrl- o Ctrl-Break (dependiendo de la plataforma). En el sistema operativo Solaris y Linux también se genera un perfil cuando se recibe una señal QUIT (kill -QUIT pid). Si se presiona Ctrl- o Ctrl-Break varias veces, se generan múltiples perfiles en un archivo.