Cuando la aplicación Java se cuelga, ni siquiera conoce el caso de uso que conduce a esto y desea investigar, entiendo que los volcados de subprocesos pueden ser útiles.Herramienta/herramienta de análisis de volcado de subprocesos
Pero, ¿cómo podemos derivar fácilmente datos útiles de los volcados de hilo para encontrar dónde está el problema? La aplicación de servidor con la que he estado trabajando genera volcados de subprocesos muy largos, porque es una arquitectura EJB y los volcados de subprocesos contienen muchos subprocesos de contenedor que no estoy seguro de que deba tener en cuenta (es decir, subprocesos que no ejecutan mi código de aplicación , pero el código de JBoss).
Ayer probé la herramienta Thread Dump Analyzer. La herramienta es definitivamente mejor que mirar los volcados de hilo sin procesar en un editor de texto, porque puedes filtrar los hilos que no te interesan, ver la lista de hilos, hacer clic en un hilo para ver sus detalles, comparar los volcados de hilo para encontrar larga duración hilos, etc. Ver captura de pantalla siguiente:
pero todavía hay demasiados datos para analizar - cerca de 300 hilos. No conozco ningún criterio que pueda utilizar para filtrar todos los hilos de JBoss, en los que no estoy interesado. No estoy seguro de si debería estar viendo los hilos que están actualmente en estado "ejecutable" solamente o si "esperar en condición" y "en Object.wait" también son importantes.
¿Cuál es el enfoque que normalmente seguiría y las herramientas que usaría en general?
Ver también https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=2245aa39-fa5c-4475-b891-14c205f7333c – oluies
Escribí esto, analiza los volcados de hilo, sin instalación necesario: http://spotify.github.io/threaddump-analyzer/ –
@JohanWalles ¡buena herramienta! – ycomp