¿Así que quieres meterle carga a tu servidor web?
Publicado por Aníbal Rojas 4 Agosto 2006 en Testing. Etiquetas: ab, apache, autobench, carga, httperf, perl, server, servidor, stress, testing, web. english • españolBueno, entonces, las alternativas “clásicas” para hacer stress testing o pruebas de carga a un servidor o aplicación web que puedes revisar son:
ab - Apache HTTP server benchmarking tool
ab permite realizar múltiples requerimientos GET o POST contra un servidor. Los requests pueden ser secuenciales o concurrentes, y pueden ser independientes o hacercese en el contexto de una misma sesión, todo esto es configurable por la línea de comandos.
Este proyecto de HP tiene más opciones para “atacar” a los servidores, ya que el concepto de sesión que incluye se parece más a lo que es un cliente típico bajo HTTP, donde puedes simular “ráfagas” de actividad para múltiples clientes conectados en forma concurrente.
El nivel de detalle de las estadísticas llega al punto de reportar el porcentaje de uso del CPU, para poder descartar corridas donde httperf haya tenidos que competir por CPU afectando el proceso de medición.
Es un script Perl que usa httperf para automatizar el proceso de medir el comportamiento, la idea básica es que en vez de hacer varias corridas incrementando el número de requerimientos o nivel de concurrencia, este programa se encargue de hacerlo.
Mejor aún, lo puede hacer en forma simultánea contra dos servidores para comparar su comportamiento. Y out of the box está pensado para que salida sea utilizada para crear gráficos comparativos.
El más sencillo de usar y entender es ab, httperf y autobench requieren ponerle un poco más de “coco” a la configuración sin embargo las ventajas son obvias.
En cualquiera de los casos la documentación es escasa, y definitivamente requiere familiaridad con cosas como RFC2616 - HTTP/1.1 Specification.
Por supuesto, existe otra categoría de herramientas que permiten grabar o crear scripts que simulan diferentes comportamientos contra un servidor o aplicación web, sin embargo estas opciones le permitirán, en forma rápida y sencilla, hacerse una idea de como se comporta su instalación bajo carga.
JMeter también es muy bueno, algo horrible de configurar, pero con muchas opciones despues de que se entiende, lo que más me usta es que es capaz de funcionar como un proxy HTTP para capturar las solicitudes y despues repetirlas (hasta con variacioes basadas en variables predefinidas) http://jakarta.apache.org/jmeter/