SafeChildren Banner

Havoc Oracle Solaris Experts

lunes, 28 de junio de 2010

Rendimiento Java NIO en Tomcat 6

Introducción
En el post anterior hablábamos de Cómo Configurar Tomcat 6 para Activar Java NIO, en esta ocasión vamos a ver algunos gráficos sobre el rendimiento Java NIO vs Java IO.

Lo primero que debemos tener en cuenta es que cada aplicación es diferente y por lo tanto, no se puede establecer una regla universal sobre cual de las dos tecnologías en la mejor. Por ello, os recomiendo que utilicéis Pruebas de Rendimiento de Aplicaciones Web con JMeter para poder tomar una decisión sobre Java NIO.

Además, Tomcat 6 está en fase de pruebas y por lo tanto, no está enfocado a producción, sin embargo, GlassFish si que tiene soporte de Java NIO en sus versiones de producción

La Prueba
Para llevar a cabo la prueba de rendimiento he utilizado una aplicación con un servlet que acepta una cadena por parámetros, inserta en la base de datos (PostgreSQL) y devuelve la cadena. Como veis, no es muy complicada, pero para hacer mis análisis era suficiente.

5 Usuarios x 1000 Peticiones usando Default I/O

5 Usuarios x 1000 Peticiones usando NIO


10 Usuarios x 500 Peticiones usando Default I/O


10 Usuarios x 500 Peticiones usando NIO


Resultados Totales
Aquí os dejo un documento con todos los datos del cálculo de rendimiento NIO vs IO para poder analizarlos de una forma más sencilla.



Conclusiones
En nuestro caso, el rendimiento se incrementaba de forma notable cuando teníamos pocos usuarios (dos usuarios)  ya que pasaba de una media de ejecución de 3501s a 939s, sin embargo, cuanto más incrementábamos los usuarios, la diferencia no era tan grande -aunque siempre se obtenía mejor rendimiento con NIO- llegando a 2532s vs 2475s con 10 usuarios y 500 peticiones.

Creo que NIO puede ofrecer mejoras, pero hay que estudiar cada caso con detenimiento.

Referencias

No hay comentarios:

Publicar un comentario en la entrada