首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Express/NodeJS + Mongoose server响应慢

Express/NodeJS + Mongoose server响应慢
EN

Stack Overflow用户
提问于 2018-08-11 17:11:19
回答 3查看 3.4K关注 0票数 12

问题

我有一个Express (Node.JS) + MongoDB应用程序,服务器响应加载时间平均为4-7秒(慢)。

据我所知,按google分页工具计算,服务器的平均响应时间在200 as以下。

这个应用程序是异步地从mongoDB中获取数据,但是往返到数据库的时间非常慢,每次调用平均大约500 1s 1s。这些调用是简单的findAll调用,用于检索小于100条记录的数据。

上下文

  • 猫鼬版本: 4.13.14
  • DB服务器的MongoDB版本为3.4.16
  • 数据库服务器是托管在MongoDB阿特拉斯M10的AWS /俄勒冈州(美国-西部-1)
  • 网络服务器由now.sh托管在SFO1 (us-west-1)中。
  • 已按照MongoDB阿特拉斯的性能顾问的建议执行推荐索引
  • 数据在本地环境(本地服务器+本地db)中非常好地获取,因为数据在几毫秒内被查询。
  • 受影响页面的猫鼬日志可在此要旨中找到。

Mongo服务器配置

  • 蒙戈地图集M10
  • 2GB Ram
  • 10 GB存储
  • 100 IOPS
  • 加密
  • 自动扩展存储

尝试解决办法:

我已经检查了我的DB指标,它们看起来很好。也没有缓慢的查询。这些是简单的findAll查询。蒙戈地图集的表演顾问报告说,没有什么不寻常的。

生产应用程序和数据库都托管在同一区域。

我已经尝试过通过运行.lean()来优化查询的应用层(mongoose)。

问题:

我还应该在哪里寻找改进数据库延迟的方法呢?一个简单的查询怎么会花这么长时间?否则,为什么我的服务器响应时间会占用多达4s,而预期的响应时间大约是200 4s?

EN

回答 3

Stack Overflow用户

发布于 2018-08-17 10:40:15

嘿,您可以尝试在同一区域托管您的服务器和数据库。在这种情况下,我认为网络正在造成一种开销。如果服务器和数据库位于同一区域,则它们位于同一网络上,这将大大减少延迟。这里有一个aws的图表。

票数 2
EN

Stack Overflow用户

发布于 2018-08-14 11:08:25

我用我在硕士学位上开发的应用程序添加了一些像你这样的问题。我添加了一个运行在网上的node.js api,以便将它显示在room.And类中,我意识到每次我想在api中调用它时,响应都要花费大量的时间。我意识到其中一个问题是学校的网络,因为防火墙。另外,我放置服务器heroku.com的地方也出现了一些延迟。我所做的是使用Redis ( https://redis.io/ )来提高性能,而且heroku也给了我一些问题,因为请求是http而不是https。

在本地主机上运行应用程序和数据进行测试,并查看性能。如果您没有任何问题,请检查是否没有任何东西干扰您的请求,比如您所在的节点服务器所在的位置。

让我知道这是否有帮助,如果你仍然有问题,所以我可以尝试帮助你更好。

票数 0
EN

Stack Overflow用户

发布于 2018-08-17 05:20:19

有一次,我使用相同的开发堆栈(mongodb,nodejs)处理我的nodejs代码,我遇到了api延迟响应的麻烦,在花了大量时间之后,我发现我的服务器是真正的罪魁祸首,然后我从heroku变成了amazon EC2实例,事情开始工作得很快,速度惊人,所以很可能您的web服务器就是的罪魁祸首。

为了确保mongodb不是罪魁祸首,编写一个api端点,在这里您可以返回一些json响应,而无需对数据库进行任何查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51801978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档