CONSEJOS
SOBRE PRUEBAS DE RENDIMIENTO Y OPTIMIZACIÓN
Floyd
Marinescu
Arquitecto Jefe
TheServerSide.com
Enlace
a la versión original en inglés
Traducido
con permiso de TheServerSide.com por
Dr.
Vicent-Ramon Palasí Lallana.
Gerente General de Aurum Solutions.
http://www.aurumsol.com
Septiembre 2003
El propósito
de este documento es explicar qué se debe hacer para llevar a
cabo pruebas de escalabilidad, pruebas de rendimiento y optimización
en un entorno J2EE (Java 2 Enterprise Edition).
1.
DEFINICIONES
Tiempo
de respuesta (Response time)– El tiempo que pasa entre
la petición inicial y la descarga completa de la respuesta
(es decir, el desplegado por entero de la página web).
Carga (Load)
- Una medida del uso del sistema. Se dice que un servidor tiene “carga
elevada” cuando la aplicación que soporta experimenta un
fuerte tráfico.
Escalabilidad (Scalability) – Una
aplicación escalable tiene un tiempo de respuesta que aumenta
linealmente cuando aumenta la carga. Dicha aplicación es capaz
de procesar cada vez más volumen si se añaden recursos
adicionales de hardware de forma lineal (es decir, no exponencial).
Herramientas
de automatización de pruebas (Automation testing tools) – Herramientas
(Silk de Segue Software, WebLoad, etc.) que se usan para simular un
usuario haciendo peticiones de páginas o ejecutando flujo de
trabajo preprogramado en un sitio.
Herramientas
de pruebas de carga (Load testing tools) – La mayoría
de herramientas de automatización de pruebas (por ejemplo,
WebLoad) pueden usarse como software de pruebas de carga. Estas herramientas
simulan cualquier cantidad de usuarios usando un sitio y proveen datos
importantes como, por ejemplo, tiempos medios de respuesta.
Perfilador (Profiler)
- Un perfilador es un programa que examina una aplicación mientras ésta
se ejecuta. Provee útil información de ejecución
como el tiempo invertido en determinados bloques de código, el
grado de utilización de la memoria y del heap, el número
de instancias de cada clase que hay en memoria, etc.
2.
UN PROCESO PARA LAS PRUEBAS DE RENDIMIENTO
-
Pruebas
funcionales. La mayoría de aplicaciones
comienzan el proceso de prueba completando, antes
que nada, las pruebas funcionales. Es decir, asegurándose
que funcionan todos los casos de uso y flujo de
trabajo de la aplicación.
-
Pruebas
de carga y escalabilidad. El proceso de
probar la carga y escalabilidad tiene dos aspectos:
- Probar
el tiempo de respuesta cuando se aumenta el tamaño
de la base de datos.
- Probar
el tiempo de respuesta cuando se aumenta el número
de usuarios concurrentes.
-
Interpretación
de los resultados. Después de medir
el tiempo de respuesta con diferentes cargas y
tamaños de la base de datos, se pueden hacer
interpretaciones basándose en el tiempo
medio de respuesta obtenido en las pruebas y el
uso de recursos del servidor durante las mismas.
-
Optimización. Después
de identificar anomalías en el paso anterior,
se interpretan los resultados y se localiza el problema.
|