Ejecuto carga contra Tomcat 6 que se ejecuta en Java 6. Quiero recopilar un heapdump del montón de Java mientras el servidor Tomcat está bajo carga. Normalmente uso jmap -dump para recolectar mis heapdumps.Recopilación de heapdump de Java bajo carga
Sin embargo, cuando trato de hacer esto cuando Tomcat maneja una carga alta encuentro que la colección heapdump falla.
¿Es jmap la mejor herramienta para recolectar un volcado de pila de un proceso bajo carga? ¿Cuáles son las causas posibles que causarían que jmap no recolectara un heapdump?
Si jmap no es la mejor herramienta, ¿qué es mejor?
Es totalmente aceptable para mí para jmap (u otra herramienta) detener el mundo dentro del proceso de Java mientras se realiza el volcado del montón.
¿Ha intentado conectar VisualVM a la VM y crear una HeapDump con eso? –
Esto no es ideal para mí ya que mi Tomcat se ejecuta en un servidor Linux remoto. VisualVM incluye soporte para vuelcos de almacenamiento dinámico remotos pero esto requiere que se abra un puerto JMX cuando se inicia la JVM. – mchr
http://stackoverflow.com/questions/20235802/ways-how-to-get-heap-dump-from-running-tomcat-7 tiene respuestas más detalladas. – Vadzim