Pregunta

Estoy ejecutando JBoss 5. Veo que el mantenimiento de memoria aumenta a medida que pasa el tiempo. El número de subprocesos activos está aumentando. El siguiente stacktrace se toma de un hilo activo que es uno de los muchos hilos (estos son los hilos que se agregan a medida que pasa el tiempo). ¿Qué puedo aprender del stacktrace? ¿Cómo puedo profundizar y tener una visión más clara de lo que está sucediendo?

Nombre: WorkManager (2) -92 Estado: ESPERANDO en java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4e2e52 Total bloqueado: 1 Total esperado: 1

Seguimiento de pila: sun.misc.Unsafe.park (Método nativo) java.util.concurrent.locks.LockSupport.park (LockSupport.java:158) java.util.concurrent.locks.AbstractQueuedSynchronizer $ ConditionObject.await (AbstractQueuedSynchronizer.java:1925) java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:358) java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:947) java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:907) java.lang.Thread.run (Thread.java:619)

Gracias Rod

¿Fue útil?

Solución

Parece que ese hilo está esperando getTask (), es decir, solo está esperando que se realice algún trabajo.

Se generarán nuevos hilos a medida que lleguen las solicitudes, no debe preocuparse por ello a menos que haya una gran cantidad de hilos ocupados con el trabajo real.

El uso de memoria crecerá con el tiempo hasta que la JVM decida recolectar basura. Si sigue creciendo, y ejecutar GC desde jconsole no hace ninguna diferencia, es posible que tenga una pérdida de memoria. Encontrar fugas puede ser difícil, pero puede usar MAT para hacerlo más fácil.

Otros consejos

Aprenderá más de esto ejecutando JConsole desde JDK1.6 o JDK1.7. El JConsole.exe en JDK1.5 es '' old-school ''.

Le sugiero que comience perfilando con jvisualvm . Obtendrá gráficos con el tiempo del uso del montón, subprocesos, recolección de basura, etc.

También puede realizar un volcado de pila con jmap y luego analice con jhat o mat .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top