Tengo una aplicación Express (Node.JS) + MongoDB con un tiempo de carga de respuesta del servidor de 4 a 7 segundos en promedio (lento).
Entiendo que el tiempo de respuesta promedio del servidor es inferior a 200 ms según las herramientas de velocidad de página de Google .
Esta aplicación está obteniendo datos de mongoDB de forma asíncrona, pero los tiempos de ida y vuelta a la base de datos son extremadamente lentos y cada llamada tiene un promedio de 500 ms a 1 s. Estas llamadas son simples llamadas findAll para recuperar datos de menos de <100 registros.
Revisé mis métricas de base de datos, se veían bien. Tampoco hay consultas lentas. Estas son consultas simples de findAll. El asesor de rendimiento en mongo atlas no informa nada inusual.
La aplicación de producción y la base de datos están alojadas en la misma región.
Ya intenté optimizar la capa de aplicación de la consulta (mangoose) ejecutando .lean()
¿Dónde más debo buscar para mejorar la latencia de la base de datos? ¿Cómo puede llevar tanto tiempo una simple consulta? De lo contrario, ¿por qué el tiempo de respuesta de mi servidor tarda hasta 4 segundos cuando lo esperado es de unos 200 ms?
Oye, puedes intentar alojar tu servidor y tu base de datos en la misma región. Creo que la red está creando una sobrecarga en este caso. Si el servidor y la base de datos están en la misma región, están en la misma red, lo que reducirá significativamente la latencia. hay un diagrama en aws para esto 
Agrego un problema como el tuyo con una aplicación que desarrollé en mi maestría. Agregué poner una API de node.js ejecutándose en línea para presentarla en la sala de clase. Y me di cuenta de que cada vez que quería hacer una llamada en la API, la respuesta tardaba mucho tiempo. Me di cuenta de que uno de los problemas era la red de la escuela por los cortafuegos. Además, el lugar donde puse el servidor heroku.com también estaba dando algo de retraso. Lo que hice fue usar Redis ( https://redis.io/ ) para mejorar el rendimiento, también heroku me estaba dando algunos problemas debido a que las solicitudes eran http y no https.
Realice una prueba ejecutando la aplicación y los datos en su host local y vea el rendimiento. si no tiene ningún problema, intente verificar si nada interfiere con su solicitud, como el lugar donde aloja su servidor de nodo.
Avíseme si esto ayuda o si todavía tiene problemas para que pueda tratar de ayudarlo mejor.
Tuve el mismo problema una vez con mi código nodejs usando la misma pila de desarrollo (mongodb, nodejs), tuve problemas por la respuesta tardía de api, y después de pasar mucho tiempo encontré que mi servidor era el verdadero culpable y luego cambié de heroku a la instancia de amazon aws EC2 y las cosas comenzaron a funcionar rápido y sorprendentemente rápido, por lo que probablemente su servidor web sea el culpable
para asegurarse de que mongodb no sea el culpable, escriba un punto final de API en el que pueda devolver alguna respuesta json sin realizar ninguna consulta a la base de datos.