Siege es una herramienta de pruebas de carga, que permite simular el comportamiento de una web bajo condiciones extremas (el asedio del servidor).
Un número de peticiones altas, fuerte nivel de concurrencia, etc., son circunstancias a las que se enfrentará una web con una audiencia elevada, o a puntas de consultas, como por ejemplo debido a campañas publicitarias, eventos específicos, salida a la venta de nuevos productos, y otros.
Así que nos encontramos en esa situación, y decidimos que la herramienta es siege. ¿qué más hay que hacer?
En ubuntu/debian, la instalación es sencilla, desde una terminal:
~$ sudo apt-get install siege
~$ siege http://{host}/
~$ siege -c 30 http://{host}/
Donde {host} es el nombre del dominio que se quiere probar. Obvia decir que esta prueba debe realizarse en un entorno controlado y bajo nuestra propia responsabilidad, y que en ningún caso se debe ejecutar sobre servidores y webs ajenas. Las consecuencias de ese uso impropio quedan bajo la responsabilidad del usuario.
Y ¿de dónde sacamos esas URLs? Una de las opciones es un archivo de logs de Apache. Si dispones de un log de apache con datos de navegación real, o se puede generar uno visitando la web. Por ejemplo, se puede programar un crawler sencillo, tal como Httrack o similar. Lo que interesa no es la descarga de contenidos, sino que se navegue por la web para generar logs de Apache.
189.147.178.214 - - [19/May/2013:06:41:18 +0200] "GET /wp-content/themes/retina/style.css HTTP/1.1" 200 5213 "http://www.sopadebits.com/patrones-organizativos-gestion-informacion" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"
¿Cómo extraeremos esa URL? Con awk. Esto permite extraer los contenidos separándolos por espacios (entre infinidad de otras posibilidades, vale la pena echarle un ojo). En nuestro caso, la instrucción en consola puede ser:
~$ cat {archivo-de-log} | awk '{print $7}'
~$ cat {archivo-de-log} | awk '{print $7}' | sort | uniq
~$ cat {archivo-de-log} | awk '{print $7}' | sort | uniq | sed -e 's/^/http:\/\/sopadebits/g'
© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.