Perfilado de la aplicación
Puede perfilar aplicaciones Java locales y remotas utilizando Java VisualVM.
Editar los scripts de arranque de Tomcat
Sección titulada «Editar los scripts de arranque de Tomcat»Edite los archivos $TOMCAT_HOME/bin/setenv.* (sentenv.sh para linux y setenv.bat para Windows).
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote=true"CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=9090"CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false"CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=127.0.0.1"Autenticación
Sección titulada «Autenticación»Para mejorar la seguridad, habilite la autenticación. Edite los archivos $TOMCAT_HOME/bin/setenv.* (sentenv.sh para linux y setenv.bat para Windows).
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=true"CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.password.file=$CATALINA_HOME/conf/jmxremote.password"CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.access.file=$CATALINA_HOME/conf/jmxremote.access"Edite el archivo de permisos de acceso $CATALINA_HOME/conf/jmxremote.access:
monitorRole readonlycontrolRole readwriteEdite el archivo de contraseñas $CATALINA_BASE/conf/jmxremote.password:
monitorRole tomcatcontrolRole tomcatRestrinja el acceso a estos archivos:
$ chmod 600 $CATALINA_HOME/conf/jmxremote.access$ chmod 600 $CATALINA_HOME/conf/jmxremote.passwordMonitorizar una JVM remota mediante SSH
Sección titulada «Monitorizar una JVM remota mediante SSH»La forma más sencilla de conectarse al JMX remoto es utilizar un proxy SOCKS.
$ ssh user@external.server.ip -D 8888Configure VisualVM para que utilice este proxy. Vaya a Tools > Options > Network y edite Manual Proxy Settings. Configure el proxy SOCKS en localhost y el puerto 8888.

Ahora puede conectar VisualVM al destino remoto. Vaya a File > Add JMX Connection… e introduzca la IP o el nombre de host de la máquina remota y el puerto JMX configurado (en nuestra configuración de ejemplo es 9090).

Java incluye HPROF, un perfilador que recopila información de ejecución de la aplicación. HPROF es capaz de presentar el uso de CPU, estadísticas de asignación de memoria del heap y perfiles de contención de monitores.
Por ejemplo, puede recopilar información del uso de CPU muestreando hilos.
Edite el archivo $TOMCAT_HOME/bin/setenv.sh (o setenv.bat si utiliza Windows):
CATALINA_OPTS="$CATALINA_OPTS -agentlib:hprof=cpu=samples"