stacktrace - ¿Cómo obtener un seguimiento completo de la pila de un programa java en ejecución que está tomando 100% de CPU?
stacktrace c# (5)
Echa un vistazo a VisualVM . Hay muchas herramientas de creación de perfiles agradables, y puede realizar un volcado de hilos.
Tengo una instancia de jenkins que está atascada en algún tipo de bucle sin fin sin ninguna actividad visible.
Puedo obtener el pid
del proceso en ejecución, así que, ¿cómo genero un rastreo que pueda usar para un informe de error?
Estoy corriendo en Linux.
En * nix, con la top
presionando H
puedes ver los hilos.
Luego, con jps
, puede ver al pid
teniendo en cuenta que si el proceso se inició con privilegios, debe ejecutarlo con sudo
por ejemplo.
Si toma el ID de hilo y lo convierte a hexadecimal, puede cruzar esos datos con la salida de jstack pid
.
Ambas herramientas están en $JAVA_HOME/bin
.
Probar con jstack . Te dará una lista completa de lo que están haciendo tus hilos. Todo lo que necesita es el proceso pid.
Tome un volcado de hilo. Conéctese a través de Visual VM y solicite un volcado. O si está en Unix, entonces kill -3 pid o en Windows Ctrl + Break en la consola de proceso lo haría por usted. El volcado va directo a la consola. También puedes usar jstack para lanzar un volcado.
Ctrl+/
en linux (que envía SIGQUIT
)
Ctrl+Break
SIGBREAK
en ventanas (que envía SIGBREAK
bajo MSVCRT)