icono LinkedIn
Iván García Puebla

Consultor tecnológico de desarrollo de proyectos informáticos.

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2008-02-07

Tutorial visitado 6.084 veces Descargar en PDF
Slimming Basico de JBoss

Slimming Básico de JBoss

Introducción

En Autentia usamos el servidor de aplicaciones JBoss en varios de nuestros proyectos. Los reinicios de servidor forma parte del ciclo de desarrollo de aplicaciones web, y nos hemos preguntado si puede optimizarse el tiempo de (re)carga de, en este caso, JBoss. Para ello he seguido unas pautas indicadas en la wiki de JBoss, y muestro los resultados. En función de la plataforma de desarrollo, recursos software y hardware los resultados pueden variar; puede aparecer un tutorial complementado a este; sin embargo os animamos a que lo probéis por vosotros mismos.

Entorno del test

  • Toshiba Equium C2Duo 1.5GH, 3GB Ram, HDD SATA
  • Debian unstable [07/02/2007]
  • Eclipse Europa EE 3.3.1.1
  • JBoss-4.2.2.GA con el agrumento: -c default
  • JDK 1.5.0_11 con -Xms128m -Xmx512m
  • 1 proyecto web desplegado con tecnologías JSF/MyFaces Tomahawk/EJB3/Lucene/Lius/Log4Java/MySQL.

Documentación

Utilizaré http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossASTuningSliming (sección Slimming) como referencia, si bien la wiki aporta más información que merece dedicarla algo más de tiempo.

Resultados

Para estas pruebas, JBoss está configurado como servidor del proyecto en Eclipse. Por lo tanto deplegamos (publish/deploy...) el proyecto una primera y única vez y en adelante levantaremos y detendremos el servidor desde el IDE, observamos los logs y anotamos los tiempos en segundos de inicio a medida que deshabilitamos servicios y componentes propios de jBoss sugeridos en la documentación y que no sean aplicables a nuestro proyecto. Las pruebas son acumulativas, y por el orden presentado:

Estado Prueba sugerida por la documentación Reinicio #1 Reinicio #2 Promedio
0 Tiempo original sin slimming 39 40 39.5
1 "When not using the J2EE client deployer service" 40 38 39
2 "When not using JBossMQ (our JMS server)" 34 36 35
3 "When not using the HTTPInvoker (which lets you tunnel RMI over HTTP)" 35 34 34.5
4 "When not using XA datasources (Distributed and/or recoverable transactions)" 34 36 35
5 "If you do not need the web-console" 35 35 35
6 "If you are not using console/email monitor alerts" 34 35 34.5
7 "If you are not using rich property editors" 34 34 34
8 "If you are not using the JBoss Scheduler Manager" 34 34 34
9 ""If you do not need to use CORBA/IIOP" 32 30 31

Gráficamente:



Verás que muchas de las pruebas sugeridas no se presentan en la tabla. Para la aplicación deplegada en concreto, se observaban trazas de excepciones en el log, reflejando errores en dependencias de la aplicación y/o servidor o incluso imposibilidad de arranque del mismo.

Conclusión

Es evidente que puede sacarse más partido al slimming e hilar fino con el tunning para obtener mejores resultados, aunque a groso modo hemos reducido el tiempo de arranque en un 20%. Asimismo convendría hacer un muestreo más amplio para evitar el sesgo, pero los datos presentados son reales tomando mi plataforma de desarrollo y un proyecto actual como un ejemplo. Desde Autentia te animamos a que partas de este tutorial para trabajar en ello, aprender y sacar tus propias conclusiones.

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: