taglibs standard servidor impl java tomcat permgen thread-dump

java - standard - Volcado de hilo Tomcat



tomcat 8 windows download (5)

¿Hay que tomar un volcado de hilo de Tomcat? Quiero monitorear los hilos en ejecución en Tomcat en un momento determinado.

Nota: Estaba haciendo eso en la lógica web, pero no sé cómo se puede hacer con Tomcat.


Hay una forma sencilla de monitorear los hilos de tomcat y hacer un volcado. Inicie Tomcat con las siguientes opciones de Java:

-Dcom.sun.management.jmxremote.port=<some free port> -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

Después de reiniciar Tomcat, simplemente puede iniciar jconsole (parte de jdk) o visualvm y crear una nueva conexión jmx al puerto que ha elegido anteriormente.
En ambas herramientas también tiene una opción para tomar un volcado;)

!!! Pero hágalo solo en un entorno cerrado / seguro, ya que no hay un conjunto de autenticación.


Los siguientes pasos deberían ayudarlo a ejecutar los subprocesos Java actuales y analizarlos:

  1. Descargue IBM JCA, que es un buen analizador de volcado de hilos de IBM Thread & Dump Monitor Analyzer
  2. Ejecute lo siguiente para obtener el volcado de los hilos de Tomcat: root@localhost:~# sudo -u $TOMCAT_USER $JAVA_HOME/bin/jstack -J-d64 -l $(ps aux | grep ''[c]atalina'' | awk ''{print $2}'') > ~/threads.log
  3. Abra el volcado de hilos con IBM Thread & Dump Monitor Analyzer

Nota: Reemplace $JAVA_HOME con su ruta a su JDK actual, $TOMCAT_USER con el usuario que ejecuta Tomcat; Si pasas al usuario incorrecto o incluso usas root, obtendrás un error como este:

3047: well-known file is not secure



Si usa Linux, puede enviar un kill -3 [pid de su Tomcat] y volcará todos los hilos actuales en catalina.out.