Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

915
Vistas
Respuesta lenta del servidor de Express/NodeJS + Mongoose App

Tema

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.

Contexto

  • Mangosta versión: 4.13.14
  • La versión de MongoDB del servidor DB es 3.4.16
  • El servidor DB está alojado en MongoDB Atlas M10 en AWS / Oregon (us-west-1)
  • El servidor web está alojado con now.sh en SFO1 (us-west-1)
  • Haber realizado los índices recomendados según lo aconsejado por el asesor de rendimiento de MongoDB Atlas
  • Obtención de datos perfectamente bien en el entorno local (servidor local + base de datos local) ya que los datos se consultan en cuestión de unos pocos ms
  • Los registros de Mongoose para la página afectada se pueden encontrar en esta esencia

Configuración del servidor Mongo

  • Atlas Mongo M10
  • RAM de 2GB
  • Almacenamiento de 10GB
  • 100 IOPS
  • encriptado
  • Almacenamiento de expansión automática

Soluciones tentativas:

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()

Pregunta:

¿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?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

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 ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Denunciar

0

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.

over 4 years ago · Santiago Trujillo Denunciar

0

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.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda