las palmas devops: pruebas de carga web

Post on 13-Aug-2015

274 Views

Category:

Internet

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Ejemplo práctico con Gatling

Pruebas de carga web

Las Palmas DevOps Jonathan Araña Cruz

Jonathan Araña Cruz (aka jonhattan)

Sysadmin en la onda DevOpsDrupal developer

http://atlantic-canary.nethttp://github.com/jonhattan

@_jonhattan_

Cuestiones

¿Qué respuesta da una web? Número de visitantes, tiempos de generación, tasa de errores,...

➜ Monitorización, Analytics,...

¿Cómo variará ante cambios…?● En el código● En el volumen de contenido● En la configuración de la infraestructura● En los recursos hardware● En el número de visitantes

➜ Pruebas de carga

Pruebas de carga

● Diseñar planes de carga○ Ej: cuantas visitas por segundo quiero simular

● Diseñar escenarios○ Simulación de la interacción de los usuarios en la web

● Medir:○ Tiempos de respuesta, peticiones fallidas,...○ Estrés del servidor: carga máxima/media, ram, swap…

● Interpretar datos, sacar conclusiones

Reproducibilidad de los tests

● Condiciones iniciales● Definir pasos necesarios para la reproducibilidad (volver a las condiciones

iniciales)○ Cargar bbdd de referencia○ Reiniciar servidor web / bbdd / memcache / …○ Flushear memoria (cachés, buffers..)○ Esperar a que disminuya la carga del sistema, etc

Variabilidad

● Factores fuera de nuestro control○ Servicios externos○ Red (control de congestión, anti flood/dos...)○ Eventos del sistema (origen o destino)○ Complejidad○ Timing

● Apache Bench - http://httpd.apache.org/docs/2.2/programs/ab.html● JMeter - http://jmeter.apache.org● Gatling http://gatling.io● …

Herramientas

Gatling

● Open-source load testing framework based on Scala, Akka and Netty

● High performance

● Ready-to-present HTML reports

● Scenario recorder and developer-friendly DSL

Gatling: Escenarios

● Codificar desde cero● Capturar una sesión real con un navegador● Ajustar escenarios para su reproducción

gatling/bin/recorder.sh &

chromium --proxy-server=http://127.0.0.1:8000 &

Gatling: Prueba de carga

● https://gitlab.faita.net/jonhattan/gatling-example/commits/master

ssh s01.surgery.sbit.io -o "ServerAliveInterval=30" sudo tail -f /var/log/apache2/acme.s01.surgery.sbit.io_access.log | logstalgia -x --paddle-mode vhost -

USERS=100 TIME=10 ./bin/gatling.sh

Caso real

● Web para preinscripción y reserva de plazas en eventos● Fecha de apertura de inscripción● ~ 2000 inscritos

https://docs.google.com/spreadsheets/d/1YT7WxqCJM5mqZBVoOf9tBp-2s06Uwy95T218KRKQUGg/edit#gid=0

Bola extra

top related