[CRITICO] Cuello de botella en toda la infraestructura.
Se ha identificado un aumento en el tiempo de carga de todas las páginas en general, enfatizando en los endpoints que tienen varias consultas a la base de datos. Investigar la causa raíz de estos cuellos de botella, mitigarlos, aplicar una solución técnica y testear con una prueba de estrés de tráfico.
Resultado de la investigación: El cuello de botella proviene de las consultas a MongoDB. Debido a que ArtKoffee utiliza el tier M0 de MongoDB (lo cuál significa que usa RAM-Shared y CPU-Shared, generando efecto de vecino ruidoso) las consultas comienzan a tardar cada vez más dependiendo del uso de los demás servicios del mismo servidor de base de datos, generando que en endpoints con muchas consultas llegue a tardar hasta 46 segundos de carga.
Mitigación: Optimización de la clase MongoDBShelf en el código haciendo un Proxy perezoso que hace consultas puntuales y solo llama a una colección completa cuando llama a métodos globales. Además, optimizar endpoints específicos que utilizan una gran cantidad de datos. El resultado es una disminución del 89,13% en el tiempo de carga de estos endpoints, con un umbral de 1s a 5s, y de menos de un segundo en endpoints de búsqueda y obtención de datos. Sin embargo, 5 segundos aún es mucho tiempo.
Solución técnica: Pagar el tier M10 de MongoDB, sin embargo, por la falta de recursos, sale más sencillo y barato realizar una mudanza de los datos a una base de datos no relacional con más rapidez de consultas, se tiene a Redis como alternativa. Es considerada una solución a mediano plazo. En proceso.
Log in to comment and vote
No comments yet
Be the first to share your thoughts.