2012-05-25 4 views

Respuesta

27

Probar con jstack. Te dará una lista completa de lo que están haciendo tus hilos. Todo lo que necesita es el proceso pid.

+0

no estoy seguro de si esto ayuda en mi caso, pero sí responde a la pregunta http: // pastebin.com/r1e0dtzp – sorin

+0

Lo reduce hasta cierto punto. Si tiene un uso de CPU del 100%, quiere buscar subprocesos que no estén en el estado BLOQUEO. Por ejemplo, Thread 30609 es sun.nio.ch.EPollArrayWrapper.epollWait, que podría coincidir con [este defecto] (https://issues.apache.org/jira/browse/DIRMINA-678) dependiendo de su configuración. – mprivat

+0

Recientemente jstack dejó de funcionar y no estoy seguro de por qué. Aquí está la pregunta relacionada http://stackoverflow.com/questions/31179544/did-the-jstack-stopped-working-on-newer-jdk8-versions – sorin

2

Eche un vistazo a VisualVM. Hay muchas buenas herramientas de creación de perfiles con él, y puede realizar un volcado de subprocesos.

8

Realizar un volcado de hilo. Conéctese a través de Visual VM y solicite un volcado. O si en Unix, entonces kill -3 pid o en Windows Ctrl + Break en la consola de proceso lo haría por usted. El tugurio va directo a la consola. También puedes usar jstack para lanzar un botadero.

+0

kill -3 pid funciona muy bien, gracias! Para aquellos que tienen una JVM ejecutándose en "pantalla": ctrl-a H (mayúscula) inicia/detiene el registro en un archivo. – schieferstapel

3

En * nix, con top presionando puede ver los hilos.

Luego, con jps, tenga en cuenta que si el proceso se inició con privilegios, entonces debe ejecutarlo con sudo, por ejemplo.

Si toma la identificación del hilo y la convierte a hexadecimal, puede cruzar esa información con la salida jstack pid.

Ambas herramientas están en $JAVA_HOME/bin.

4

Ctrl+\ en Linux (que envía SIGQUIT)

Ctrl+Break en las ventanas (que envía SIGBREAK bajo MSVCRT)

Cuestiones relacionadas