Slimming básico de JBoss

0
8461

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.

Dejar respuesta

Please enter your comment!
Please enter your name here