Análisis de rendimiento al usar un Pool de conexiones

3
27345

Análisis de rendimiento al usar un Pool de conexiones

Índice de contenido

Introducción

Toda aplicación debería cubrir de forma satisfactoria las necesidades para las que fueron creadas, siendo además muy deseable que las tareas las realizasen
usando de forma satisfactoria los recursos disponibles y proporcionase además un tiempo de respuesta adecuado al cliente.

En este tutorial vamos a analizar las mejoras en rendimiento que nos ofrece el uso de Pool de conexiones a base de datos. Para ello, realizaremos una sencilla aplicación Web (desplegada sobre Tomcat 6)
que simplemente para cada petición se conecte a una base de datos bien a través de un Pool de conexión o sin él, y analizaremos los resultados obtenidos al ejecutar un test de rendimiento
que estrese a la aplicación simulando peticiones concurrentes y constantes a la misma.

Caso de estudio: Aplicación Web

web.xml de la aplicación web

context.xml Definición del Pool de conexiones que usará la aplicación.

Definición del test de rendimiento

A continuación creamos un test usando JMeter, puede descargar el test haciendo clic aquí.

10 clientes realizarán peticiones HTTP concurrentemente durante 5 segundos:

Petición HTTP que realizarán los clientes:

Donde:

  • WebAppPool es el contexto dentro del servidor de la aplicación web.
  • Si el parámetro pool vale 1, el servlet usará el pool de conexiones.
  • Si el parámetro pool vale 0, el servlet no usará el pool de conexiones.

Resultados obtenidos al ejecutar el test de rendimiento

Resultados sin pool de conexiones

Resultados con pool de conexiones

Análisis de los resultados obtenidos

En vista a los informes que nos proporciona JMeter podemos decir entre otras cosas:

  1. Para el mismo intervalo de tiempo, el servlet, al usar del pool ha sido capaz de atender 30727 peticiones mientras que sin el pool apenas fue capaz de atender 630 peticiones.
  2. En media, el servlet, al usar el pool a logrado atender las peticiones en 1 milisegundo, mientras que sin el uso del pool este tiempo se incrementa a 79 milisegundos.
  3. El rendimiento del servlet, al usar el pool ha sido de 6138 peticiones por segundo, mientras que sin el Pool decrece drásticamente a 124 peticiones por segundo.

En base a estos resultados, no cabe duda de la mejora que aporta el uso de los Pool de conexiones en nuestras aplicaciones.

Carlos García Pérez. Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.

cgpcosmad@gmail.com

3 Comentarios

  1. hola Carlo excelente ejemplo para tener en cuenta …que tal el caso de programas de escritorios ..yo tengo us soft de supermercado usando una conexión convencional normal a bases de dato del servidor lo he usado 4 años no he tenido ningùn problema …pero que opina al respecto de los programas en java de escritorio vale la pena aplicar el pool de conexiones..?

  2. Buen día. AL ser de escritorio o standalone solo es usada la aplicacion por una persona. En ese orden de ideas no vale la pena implementar un pool de conexiones.

    Es lo que considero.

Dejar respuesta

Please enter your comment!
Please enter your name here