ANÁLISIS DE CAPACIDAD - fredyalarcon/desarrollo-sw-nube-hfma GitHub Wiki

Escenario y Pruebas de Estrés API REST y Batch

Plan de pruebas

Objetivo: Evaluar la capacidad y la estabilidad de la aplicación de conversión de videos en situaciones de alta carga.

Objetivos específicos

  • Determinar la cantidad máxima de usuarios, solicitudes o tareas de conversión que la aplicación puede manejar antes de que se produzcan problemas de rendimiento o errores.

  • Determinar la capacidad del sistema de colas para gestionar tareas en lotes.

  • Determinar la cantidad máxima de solicitudes de tareas de conversión concurrentes por segundos para el API.

Descripción general:

Se va a probar el end point más importante del API que es la creación de tareas y carga de archivos a convertir, además se realizaran pruebas al proceso de conversión que sucede en el worker a través del consumo de la cola. Para ello se realizarán evaluaciones de rendimiento mediante métricas de solicitudes por segundo, tiempo por solicitud, tiempo promedio en atender una solicitud en grupo y tiempo promedio en atender una sola petición, por otro lado, validaremos el porcentaje de utilización de los recursos de cómputo.

Tipos de pruebas:

Pruebas de capacidad: determinar el número de usuarios y transacciones que soporta el API en el proceso de creación de creación de tareas, además determinar el número de usuario y transacciones que soporta el worker para el proceso de conversión de archivos.

Criterios de aceptación

Datos de prueba.

Vídeo mp4 de 2 megabytes.

{ "username": "fredy", "password": "Fredy123!" }

{ "username": "camilo", "password": "Camilo123!" } image

Iteraciones:

Inicial: 50 peticiones para 5 usuarios concurrentes. Que se irá incrementando de 10 en 10 peticiones manteniendo 5 usuarios. Luego de encontrar los valores máximos de capacidad se ejecutarán 3 pruebas repitiendo el proceso con el fin de evitar casos anómalos.

Configuración del sistema: Información técnica asociada con: image

Podrán encontrar información completa de la arquitectura en el siguiente enlace. https://github.com/fredyalarcon/desarrollo-sw-nube-hfma/wiki/Proyecto1_entrega1

CPU: Intel I7 v pro 2.80 GHz 8 núcleos

Memoria: 16 GB

Almacenamiento: 980 GB

Sistema Operativo: Windows 10

Herramientas para la prueba.

Apache Benchmark (AB) Versión 2.3.: Herramienta de gestión de pruebas para recolección de métricas de procesamiento y tiempo de respuesta.

**Aplication performance management (APM) TOP Versión 4.0.4 y HTOP Versión 3.2.2.:**Herramienta para identificar el nivel de utilización de la infraestructura que soporta la aplicación como porcentajes de CPU, memoria, I/O, etc.

Con el siguiente comando permite escribir los porcentajes de utilización de los recursos para un proceso especifico (Flash APP), cada segundo dentro de un archivo txt, este comando será ejecutado al mismo tiempo que la prueba realizada por AB:

top -p 64329 -n 10 -b > top-output.txt

**Gnuplot Versión 5.4.:**Aplicación de comandos de consola para visualización de dos o tes dimensiones.

Para reportes se utilizará como herramienta Excel.

Métricas de evaluación

Las métricas que se evaluarán durante las pruebas incluyen:

  • Tasa de errores.

  • Solicitudes por segundo.

  • Tiempo por solicitud

  • Tiempo promedio en atender una solicitud en grupo

  • Tiempo promedio en atender una sola petición

  • Porcentaje de utilización de los recursos de cómputo.

Riesgos.

No se va a medir lo siguiente:

  • Rendimiento de la base de datos.

  • Rendimiento de la cola RabbitMQ

La conversión de archivos únicamente se realizará con archivos MP4 a AVI.