User Tools

Site Tools


informatica:weblogic:heapdump

This is an old revision of the document!


HeapDump

Hacer un heapdump en caliente. Para la JVM y el servidor de aplicaciones no responde a peticiones:

jmap -dump:format=b,file=dump.bin <pid>

Añadir el siguiente parámetro para que haga un heapdump cuando hay un out of memory OOM:

  1. XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/weblogic/dumps

Se puede añadir en caliente. Primero miramos si lo tiene activado. Nos tenemos que fijar en el sigo - + delante de Heap:

# jinfo -flag HeapDumpOnOutOfMemoryError <PID>

-XX:-HeapDumpOnOutOfMemoryError

En este caso tiene un signo - que quiere decir que no lo tiene activado. Lo activamos poniendo el signo +:

# jinfo -flag +HeapDumpOnOutOfMemoryError <PID>

Comprobamos que lo tiene activado:

# jinfo -flag HeapDumpOnOutOfMemoryError <PID>

-XX:+HeapDumpOnOutOfMemoryError

Generar Heap Dump

Con la aplicación de Hello World y una instancia de -Xms128m -Xmx128m de weblogic, lanzamos un test de Jmeter de 100 Threads con un Loop Count de 10.000 por ejemplo. A mi me ha generado el HeapDump con formato: jrockit_<PID>.hprof

Analizar

Eclipse Memory Analizer

./MemoryAnalyzer

Te hace un pequeño informe de sospechosos de memory leaks:

One instance of "weblogic.servlet.internal.WebAppServletContext" loaded by "sun.misc.Launcher$AppClassLoader 
@ 0xe1e7f018" occupies 15,153,312 (13.88%) bytes. 
The memory is accumulated in one instance of "java.util.concurrent.ConcurrentHashMap$HashEntry[]" loaded by "<system class loader>".

Heap Analyzer (IBM)

java -jar ha447.jar

Saca un árbol de los sospechosos de memory leak

informatica/weblogic/heapdump.1428956385.txt.gz · Last modified: 2016/09/05 08:51 (external edit)