¿Cómo detectar la causa de OutofMemoryError?
Tengo una queja de que una de mis aplicaciones de servidor está fallando en una carga alta.
Es una aplicación web que se ejecuta enTomcat 5
.
Veo los volcados de hilos y veo que hay un error OutOfMemory
1TISIGINFO Dump Event "systhrow" (00040000) Detalle
"java / lang / OutOfMemoryError" "Error al crear el hilo: retVal -1073741830, errno 12"> recibido 1TIDATETIME Fecha: 2012/07/17 a las 20:03:17 1TIFILENAME> Javacore filename: C: \ ServerApplication \ Tomcat5 \ bin \ javacore.34545719.4646464.4172.0003.txt
La información del montón es la siguiente:
Maximum Java heap size : 1500m
Initial Java heap size : 256m
Esta es la configuración para el tamaño de pila inicial y máximo (java de 32 bits)
También veo que hay espacio disponible en el montón
1STHEAPFREE Bytes of Heap Space Free: 2D19F3C0
1STHEAPALLOC Bytes of Heap Space Allocated: 5DC00000
Esto es alrededor de 750 MB de espacio libre, ¿verdad?
Y a partir del análisis del método del hilo, veo que el número de hilos es695
de los cuales49%
esjava/lang/Object.wait(Native Method)
y39%
es ensun/misc/Unsafe.park(Native Method)
Tambien veo estoNO JAVA STACK 1%
No estoy seguro de lo que eso significa.
También 0 peldaños en punto muerto y2%
es ejecutable.
No estoy seguro de cómo interpretar esta información o cómo pasar de aquí para detectar la causa subyacente.
¿Alguna ayuda en esto?