Javier Antoniucci

Ingeniero en Informática

Somos expertos en Java/J2EE

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2007-04-19

Tutorial visitado 16.620 veces Descargar en PDF

Análisis de rendimiento (Profiling) de aplicaciones web con eclipse

Ya sea que nuestra aplicación web esté destinada desde sus inicios a un gran número de usuarios simultáneos o que sean pocos sus usuarios iniciales pero potencialmente su número pueda crecer, debemos estar preparados para que no “muera de éxito”.

Para ello, tras finalizar su desarrollo utilizaremos herramientas de pruebas de carga como Grinder, JMeter, etc u otras soluciones comerciales. Con estas herramientas simularemos la utilización de nuestra aplicación por parte de múltiples usuarios concurrentes. ¿pero cómo monitorizamos nuestra aplicación web?

Las herramientas de Profiling se utilizan para monitorizar el rendimiento de una aplicación. Habitualmente, constan de dos módulos: un agente y un cliente. El primero se instala dentro de la aplicación a monitorizar y el segundo se conecta al mismo para leer las monitorizaciones.

La plataforma de desarrollo Eclipse (www.eclipse.org) está compuesta por proyectos, aunque seguramente lo más conocido es el IDE de desarrollo Java (“Eclipse Project”, http://www.eclipse.org/eclipse/) y sus herramientas para aplicaciones Web (“Eclipse Web Tools Platform Project”, http://www.eclipse.org/webtools/). Pero también incluye un proyecto específico para monitorización de aplicaciones llamado “Eclipse Test and Performance Tools Platform”. Vamos a ver en este artículo como instalar y configurar Eclipse TPTP para monitorizar una aplicación Web que se ejecuta en Tomcat.

Quizás una de las métricas de rendimiento en las que Tomcat no sale bien parado es en el servicio de contenidos estáticos. Menos aún frente a los rendimientos que tiene Apache Web Server.

¿y porqué elegir entre ellos cuando fácilmente podemos tener a ambos trabajando en lo que mejor sabe hacer cada uno? De esta forma, el Apache Web Server recibirá todas las peticiones del usuario resolviendo las de contenido estático y delegando las de contenido dinámico (JSPs, Servlets, etc.).

Dado que la instalación de Tomcat 5.5 y Eclipse no tiene secretos y ya existen numerosos tutoriales sobre el tema, pasamos directamente a su configuración para Profiling. La misma consiste en:

  • Instalar y configurar el Eclipse TPTP

  • Instalar y configurar el Agente

  • Lanzar el Tomcat en modo profiling

  • Monitorizar desde Eclipse

Instalar y configurar el Eclipse TPTP

El Eclipse TPTP se puede instalar utilizando el instalador de Eclipse (Callisto) que está en el menú Help / Software Updates / Find & Install / Search for new features to install y seleccionando “Test and Performance Tools Platform”. Pero mi experiencia personal es que el proceso fué muy lento y tortuoso porque los mirrors no están muy sincronizados o contienen jars corruptos. La alternativa que recomiendo es ir a http://www.eclipse.org/tptp/home/downloads/ y seleccionar “Download now: TPTP all-in-one package, Windows” (o la distribución Linux correspondiente).


Este Zip lo vamos a descomprimir directamente sobre nuestra instalación de Eclipse es decir que las carpetas “features” y “plugins” del zip “sobreescribirán” las de nuestro Eclipse. Esta operación incluirá los paquetes necesarios para que cuando iniciemos el Eclipse la próxima vez ya cuente con el TPTP.

Instalar y configurar el Agente

Desde la misma página de download (http://www.eclipse.org/tptp/home/downloads/) descargaremos también el Agente indicando la plataforma sobre la que lo ejecutaremos.


El Zip lo descomprimiremos en alguna carpeta (C:\java\eclipse\TPTPAgent) y procederemos a incluir en el path la carpeta bin. Para ello, en Windows desde las propiedades de Mi Pc seleccionamos Opciones Avanzadas / Variables de Entorno y en Variables del Sistema buscamos PATH y seleccionamos Modificar para incluir al final C:\java\eclipse\TPTPAgent\bin.

A continuación, desde la carpeta bin iniciamos ACServer.exe, que lanzará una ventana de consola sin ningún tipo de mensaje. El Agent Controller es responsable por la coordinación de agentes y clientes. Si queremos comprobar que todo funciona, podemos iniciar desde la carpeta bin la aplicación SampleClient.exe y obtenemos:


Con esto nos aseguramos que un cliente puede conectarse con el Agent Controller.

Lanzar el Tomcat en modo profiling

Cuando iniciamos Eclipse, desde el menú Window / Preferences quitamos el check de Enable que se muestra a continuación y presionar OK.


Si estamos lanzando el Tomcat desde Eclipse, lanzarlo en modo Profiling es tan simple como iniciarlo con el botón “Start the server in Profile Mode”:


Sino, debemos incluir en la variable de sistema JAVA_OPTS el comando “-XrunpiAgent:server=enabled”.

Monitorizar desde Eclipse

Finalmente, debemos cambiar de perspectiva haciendo click en:


y seleccionando:


Ahora seleccionamos el desplegable de Profile y la opción “Profile...”:


Y seleccionamos primero “Attach – Java Process” y después el ícono de “New launch configuration”


Entonces seleccionamos el localhost y presionamos “Test Connection” para asegurarnos de que se conecta:


Sin cerrar la ventana, seleccionamos la pestaña Agents:


Añadimos el agente y dejará de aparecer el mensaje de error de arriba a la izquierda. Ahora seleccionamos la pestaña Monitor:


Donde seleccionaremos los análisis a monitorizar y presionaremos el botón Profile. Veremos entonces:


Comenzamos entonces a navegar o a simular carga en nuestra aplicación y hacemos doble click en los dos análisis:




De aquí podemos ir deduciendo qué objetos crecen en número o uso de memoria constantemente, cuales usan más la CPU o la memoria, etc.

Conclusiones

El TPTP crece día a día añadiendo soporte a nuevas monitorizaciones, herramientas de reporting, etc. También existen soluciones comerciales que añaden funcionalidad.

Esta primera toma de contacto con la solución nos da una idea de la magnitud de este proyecto. Su propia web contiene suficiente documentación para continuar aprendiendo.

Algunas notas a tener en cuenta cuando comencemos nuestra tarea de optimización:

  • Las herramientas de pruebas de carga (load testing tools como JMeter, Grinder, etc), el eclipse con TPTP y el servidor de aplicaciones deben ejecutarse físicamente en ordenadores distintos ya que su ejecución interferirá en las monitorizaciones de rendimiento.

  • Como nos dice la Ley de Amdahl (http://es.wikipedia.org/wiki/Ley_de_Amdahl), comenzar optimizando lo más utilizado y que más recursos consume.

  • Optimizar cuando el desarrollo esté concluido y documentar correctamente.

Finalmente, no dudes en solicitar nuestros servicios ya que en Autentia tenemos mucha experiencia práctica en optimizar el rendimiento de aplicaciones medianas y grandes. Contacta con nosotros en www.autentia.com .

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL: