usage not leak how exist example debug java jboss memory-leaks heap

java - not - Usando el parámetro HeapDumpOnOutOfMemoryError para el volcado de pila para JBoss



memory leak java (4)

Esto es lo que la documentación de Oracle tiene que decir:

De forma predeterminada, el volcado de almacenamiento dinámico se crea en un archivo llamado java_ pid. Hprof en el directorio de trabajo de la máquina virtual, como en el ejemplo anterior. Puede especificar un nombre de archivo o directorio alternativo con la -XX:HeapDumpPath= . Por ejemplo, -XX:HeapDumpPath=/disk2/dumps provocará que el volcado de pila se genere en el /disk2/dumps .

Me dijeron que puedo agregar el -XX:+HeapDumpOnOutOfMemoryError a mis opciones de inicio de JVM en mi script de inicio de JBoss para obtener un volcado de almacenamiento dinámico cuando obtenemos un error de -XX:+HeapDumpOnOutOfMemoryError de memoria en nuestra aplicación. Me preguntaba dónde se vierten estos datos? ¿Es solo para la consola o para algún archivo de registro? Si es solo para la consola, ¿qué ocurre si no estoy conectado al servidor Unix a través de la consola?


Me resultó difícil descifrar qué se entiende por "directorio de trabajo de la máquina virtual". En mi ejemplo, estaba usando el programa Java Wrapper de servicios para ejecutar un jar: los archivos de volcado se crearon en el directorio donde había colocado el programa contenedora, por ejemplo, c: / myapp / bin. La razón por la que descubrí esto es porque los archivos pueden ser bastante grandes y llenaron el disco duro antes de que descubriera su ubicación.


Puede ver este volcado desde la consola UNIX.

La ruta para el volcado de pila se proporcionará como una variable justo después de donde haya colocado la variable mencionada.

P.ej:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${DOMAIN_HOME}/logs/mps"

Puede ver el volcado de la consola en la ruta mencionada.


Si no está utilizando la opción "-XX: HeapDumpPath", en el caso de JBoss EAP / As de forma predeterminada, el archivo de volcado del almacenamiento dinámico se generará en el directorio "JBOSS_HOME / bin".