Me dijeron que puedo agregar el -XX:+HeapDumpOnOutOfMemoryError
parámetro a mis opciones de inicio de JVM a mi script de inicio de JBoss para obtener un volcado del montón cuando recibimos un error de falta de memoria en nuestra aplicación. Me preguntaba dónde se descargan estos datos? ¿Es solo para la consola o para algún archivo de registro? Si es solo para la consola, ¿qué pasa si no estoy conectado al servidor Unix a través de la consola?
java
jboss
memory-leaks
heap
Dmitry Trunov
fuente
fuente
Respuestas:
Esto es lo que la documentación de Oracle tiene que decir:
fuente
HeapDumpPath
, verá algo similar"Unable to create /tmp/java_pidpid.hprof: File exists"
en su salida estándar. Asegúrese de mover su archivo de volcado fuera de la ruta de volcado para despejar el camino para futuros archivos de volcado; y utilice el<pid>
marcador de posición en el nombre del archivo para aumentar la entropía en el nombre del archivo.Puede ver este volcado desde la consola UNIX.
La ruta para el volcado del montón se proporcionará como una variable justo después de colocar la variable mencionada.
P.ej:
Puede ver el volcado desde la consola en la ruta mencionada.
fuente
Me resultó difícil descifrar qué se entiende por "directorio de trabajo de la VM". En mi ejemplo, estaba usando el programa Java Service Wrapper para ejecutar un jar: los archivos de volcado se crearon en el directorio donde había colocado el programa wrapper, 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.
fuente
Si no está utilizando la opción "-XX: HeapDumpPath", en el caso de JBoss EAP / As de forma predeterminada, el archivo de volcado del montón se generará en el directorio "JBOSS_HOME / bin".
fuente