Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

910
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!