Monitorización de memoria en Apache Tomcat

Si alguien se encuentra con la necesidad de monitorizar el consumo de memoria que está haciendo su contenedor JSP/Servlet Apache Tomcat, quizás esta entrada le interese.

Hace ya algunos años que vengo usando Lambda Probe. Concretamente comencé a usarlo tras la primera release de Opina y posteriormente se convirtió en una de mis herramientas favoritas. Es difícil ver un entorno de desarrollo montado por mi en el que no esté presente esta herramienta. La uso tanto durante la fase de desarrollo como tras la puesta en producción. Es aconsejable monitorizar (aun estando en producción) nuestra aplicación, aunque sólo sea durante las primeras semana. Es una herramienta muy útil para preparar informes de calidad relacionados con rendimiento. ¿Cómo establecer sino los requisitos mínimos de memoria? Supongo que hay ocasiones en las que los administradores de sistemas reciben aplicaciones que deben ser desplegadas y desconocen cuáles son esos requisitos mínimos.

Pues bien, definiendo un buen entorno de entorno de desarrollo, pruebas de rendimiento y Lambda Probe, podemos realizar una buena aproximación de eso requisitos mínimos de memoria.

¿Qué debemos hacer para añadir a nuestro entorno de desarrollo monitorización de memoria?

  1. Descargamos la herramienta del sitio web oficial.
  2. Desplegamos el WAR en nuestro Apache Tomcat
  3. Creamos el archivo $TOMCAT_HOME/bin/setenv.sh y le añadimos la siguiente configuración:
    CATALINA_OPTS=”-server -Xms256m -Xmx300m -XX:MaxPermSize=128m -Dcom.sun.management.jmxremote”
  4. Accedemos a la aplicación:
    http://hostname[:port]/probe
  5. Y si tenemos correctamente configurado un usuario con el rol manager en $TOMCAT_HOME/conf/tomcat-user.xml, simplemente accedemos con ese usuario. En la página oficial hay información más detallada sobre el proceso de instalación.

A continuación os muestro una captura de pantalla correspondiente al consumo de memoria del entorno de preproducción que usamos para Opina.

Captura de pantalla de Lambda Probe

Captura de pantalla de Lambda Probe

10 thoughts on “Monitorización de memoria en Apache Tomcat

  1. Yo uso jconsole directamente.. aunque esta interfaz en bastante más amigable.
    Oye.., ¿sabrías de alguna aplicación o forma para hacer que envie un aviso mail si el servidor por cualquier cosa falla?

  2. hola:

    EStoy probando la herramienta y no me muestra lo de la memoria me sale el siguiente error:

    This page requires Java5 with enabled JMX Agent. To enable the JXM Agent please add “-Dcom.sun.management.jmxremote” to java command line or $JAVA_OPTS environment variable. If you are an IBM JDK user please add these properties: -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=29001 -Dcom.sun.management.jmxremote.ssl=false

    EStoy trabajando sobre windows vista, al parecer no tengo habilitado el JMX cree una variable de entorno llamada JAVA_OPTS con la cadena que mencionan ahi, tengo que ponerla en otro lado? tienes alguna idea de loq eu oasa

  3. Hola, me pasa como a Camarillo, y tengo creado el fichero setenv.sh en la ruta indicada, pero me sigue dando el mensaje de error. Gracias

  4. Lo he conseguido. Añadiendo la línea -Dcom.sun.management.jmxremote en Java Options en la pestaña Java de la aplicación Apache Tomcat Monitor y reiniciando el servicio de Tomcat, ya funciona perfectamente, sin necesidad de ficheros setenv. Gracias.

  5. Aparte de tener el fichero setenv.sh, como uso windows, puse también el fichero setenv.bat en $TOMCAT_HOME/bin/ y no me funcionó. No se por qué.

  6. Pingback: NOTAS « Business World TI

Leave a Reply

Your email address will not be published. Required fields are marked *