Las palmas devops: Pruebas de carga web

907 visualizaciones

Publicado el

Las pruebas de carga son útiles para medir la respuesta de una web (o aplicación en general) ante un conjunto de peticiones recibidas.

Los datos que obtenemos al realizar una serie de pruebas de carga nos sirven para determinar cómo responde nuestra aplicación y la infraestructura donde se aloja.

En esta presentación se muestra cómo usar Gatling, una herramienta que nos permite configurar baterías de test y lanzarlos contra una web.

Publicado en: Internet
  • Sé el primero en comentar

Las palmas devops: Pruebas de carga web

  1. 1. Ejemplo práctico con Gatling Pruebas de carga web Las Palmas DevOps Jonathan Araña Cruz
  2. 2. Jonathan Araña Cruz (aka jonhattan) Sysadmin en la onda DevOps Drupal developer http://atlantic-canary.net http://github.com/jonhattan @_jonhattan_
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. Variabilidad ● Factores fuera de nuestro control ○ Servicios externos ○ Red (control de congestión, anti flood/dos...) ○ Eventos del sistema (origen o destino) ○ Complejidad ○ Timing
  7. 7. ● Apache Bench - http://httpd.apache.org/docs/2.2/programs/ab.html ● JMeter - http://jmeter.apache.org ● Gatling http://gatling.io ● … Herramientas
  8. 8. 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
  9. 9. 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 &
  10. 10. 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
  11. 11. 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
  12. 12. Bola extra

×