Open tamaraailenacost opened 2 years ago
artillery quick --count 50 -n 20 http://localhost:3333/api/info > artillery.txt
All VUs finished. Total time: 5 seconds
Summary report @ 16:49:34(+0200)
errors.ECONNREFUSED: ........................................................... 50
http.request_rate: ............................................................. 25/sec
http.requests: ................................................................. 50
vusers.created: ................................................................ 50
vusers.created_by_name.0: ...................................................... 50
vusers.failed: ................................................................. 50
Running 20s test @ http://localhost:3333/api/info
40 connections
┌─────────┬───────┬───────┬───────┬───────┬───────┬──────────┬────────┐
│ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
├─────────┼───────┼───────┼───────┼───────┼───────┼──────────┼────────┤
│ Latency │ 16 ms │ 22 ms │ 60 ms │ 69 ms │ 25 ms │ 12.18 ms │ 193 ms │
└─────────┴───────┴───────┴───────┴───────┴───────┴──────────┴────────┘
┌───────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
│ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
├───────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│ Req/Sec │ 480 │ 480 │ 1714 │ 1952 │ 1575 │ 420.14 │ 480 │
├───────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│ Bytes/Sec │ 203 kB │ 203 kB │ 723 kB │ 824 kB │ 665 kB │ 177 kB │ 203 kB │
└───────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
Req/Bytes counts sampled once per second.
# of samples: 20
32k requests in 20.11s, 13.3 MB read
[2022-08-31T10:37:23.704] [INFO] default - info del servidor
Graficos con 0X and Autocannon
file:///home/tamara/Desktop/Coder-2022/Eccomerce2/253804.0x/flamegraph.html
Incorporar al proyecto de servidor de trabajo la compresión gzip.
Verificar sobre la ruta /info con y sin compresión, la diferencia de cantidad de bytes devueltos en un caso y otro. Luego implementar loggueo (con alguna librería vista en clase) que registre lo siguiente:
Luego, realizar el análisis completo de performance del servidor con el que venimos trabajando.
Vamos a trabajar sobre la ruta '/info', en modo fork, agregando ó extrayendo un console.log de la información colectada antes de devolverla al cliente. Además desactivaremos el child_process de la ruta '/randoms'
Para ambas condiciones (con o sin console.log) en la ruta '/info' OBTENER: 1) El perfilamiento del servidor, realizando el test con --prof de node.js. Analizar los resultados obtenidos luego de procesarlos con --prof-process. Utilizaremos como test de carga Artillery en línea de comandos, emulando 50 conexiones concurrentes con 20 request por cada una. Extraer un reporte con los resultados en archivo de texto. Luego utilizaremos Autocannon en línea de comandos, emulando 100 conexiones concurrentes realizadas en un tiempo de 20 segundos. Extraer un reporte con los resultados (puede ser un print screen de la consola) 2) El perfilamiento del servidor con el modo inspector de node.js --inspect. Revisar el tiempo de los procesos menos performantes sobre el archivo fuente de inspección. 3) El diagrama de flama con 0x, emulando la carga con Autocannon con los mismos parámetros anteriores. Realizar un informe en formato pdf sobre las pruebas realizadas incluyendo los resultados de todos los test (texto e imágenes). Al final incluir la conclusión obtenida a partir del análisis de los datos.