chela stress test

Post on 12-Apr-2017

632 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Pruebas de Estréspor: Sergio Martínez

@SuperSerch

¿Qué es una prueba de estrés?estrés. (Del ingl. stress).

1. m. Med. Tensión provocada por situaciones agobiantes que originan reacciones psicosomáticas o trastornos psicológicos a veces graves.

Real Academia Española © Todos los derechos reservados

¿Qué es una prueba de estrés?Es un proceso en donde, con ayuda de herramientas se cre a un ambiente adverso a fin de determinar la habilidad de un sistema a mantener un cierto nivel de efectividad

¿Para qué hacerlas?Encontrar cuellos de botella Encontrar “Memory leaks” Encontrar fallas de concurrencia Conocer la capacidad del sistema con la infraestructura actual

Herramientas

fwptt

JCrawler

Web Capacity Analysis Tool (WCAT)Siege

¿Por qué no falló en la prueba?La prueba y el sistema estaban en el mismo equipo Millones de peticiones a un solo URL Mal diseño del script de pruebas Incorrecta ejecución de la prueba Falta de monitoreo durante la prueba

Puntos a considerar al diseñar y realizar una

prueba de estrés

Hipótesis ¿Qué es lo que estoy queriendo probar?

Peticiones por segundo antes del punto de degradación Relación: Transferencia - Memoria - CPU Eficacia de la Arquitectura del sistema Soporte a fallos

Infraestructura similar a Producción

Tener los mismos componentes Tener configuraciones similares Conocer las diferencias y como afectan al sistema

Ancho de bandaMinimizar puntos intermedios Incluir (o no) elementos estáticos Carga de bibliotecas externas (CDNs)

Usuarios (cuentas)Sistema de autenticación y seguimiento

Cookies

Header

URL

Usar Múltiples cuentas

CacheNaturales Memcached Aleatoriedad en el comportamiento de los usuarios

Contención en EscrituraBases de datos Archivos Recursos de Red Diferentes usuarios sobre el mismo recurso

Escalabilidad¿Existe una manera simple de escalar el sistema? Incremento o decremento de la cantidad de servidores durante la prueba Multiples clientes de prueba

Demo

Resultados¿Se confirmó la hipótesis? ¿El monitoreo refleja la forma de la prueba? ¿El cambio del código de la función X afectó al rendimiento global del sistema? ¿Se encontraron problemas de rendimiento?

Si no experimentamos con el sistema, Producción será el

primer experimento.

Preguntas

¿Cómo puedo hacer una prueba con millones de usuarios?

Instalar JMeter en varios servidores Tener un servidor central Registrar las IPs en el servidor central http://jmeter.apache.org/usermanual/remote-test.html

¿Se puede probar una aplicación que recibe tweets?

Se podría intentar simular con el JSR223 Sampler JSR223: Scripting for the Java Platform

http://jmeter.apache.org/usermanual/component_reference.html#JSR223_Sampler

https://blazemeter.com/blog/queen-jmeters-built-componentshow-use-beanshell

Se puede programar un plugin para simular el stream https://github.com/apache/jmeter/blob/doc-v2_3_1/src/examples/org/apache/jmeter/examples/sampler/ExampleSampler.java

¿Cuándo se deben iniciar las pruebas de estrés?

Lo antes posible Fail-Fast: en cuanto se defina la arquitectura del sistema y se pueda tenerlo operando, así se puede validar

top related