问题
我有一个Express (Node.JS) + MongoDB应用程序,服务器响应加载时间平均为4-7秒(慢)。
据我所知,按google分页工具计算,服务器的平均响应时间在200 as以下。
这个应用程序是异步地从mongoDB中获取数据,但是往返到数据库的时间非常慢,每次调用平均大约500 1s 1s。这些调用是简单的findAll调用,用于检索小于100条记录的数据。
上下文
Mongo服务器配置
尝试解决办法:
我已经检查了我的DB指标,它们看起来很好。也没有缓慢的查询。这些是简单的findAll查询。蒙戈地图集的表演顾问报告说,没有什么不寻常的。
生产应用程序和数据库都托管在同一区域。
我已经尝试过通过运行.lean()来优化查询的应用层(mongoose)。
问题:
我还应该在哪里寻找改进数据库延迟的方法呢?一个简单的查询怎么会花这么长时间?否则,为什么我的服务器响应时间会占用多达4s,而预期的响应时间大约是200 4s?
发布于 2018-08-17 10:40:15
嘿,您可以尝试在同一区域托管您的服务器和数据库。在这种情况下,我认为网络正在造成一种开销。如果服务器和数据库位于同一区域,则它们位于同一网络上,这将大大减少延迟。这里有一个aws的图表。
发布于 2018-08-14 11:08:25
我用我在硕士学位上开发的应用程序添加了一些像你这样的问题。我添加了一个运行在网上的node.js api,以便将它显示在room.And类中,我意识到每次我想在api中调用它时,响应都要花费大量的时间。我意识到其中一个问题是学校的网络,因为防火墙。另外,我放置服务器heroku.com的地方也出现了一些延迟。我所做的是使用Redis ( https://redis.io/ )来提高性能,而且heroku也给了我一些问题,因为请求是http而不是https。
在本地主机上运行应用程序和数据进行测试,并查看性能。如果您没有任何问题,请检查是否没有任何东西干扰您的请求,比如您所在的节点服务器所在的位置。
让我知道这是否有帮助,如果你仍然有问题,所以我可以尝试帮助你更好。
发布于 2018-08-17 05:20:19
有一次,我使用相同的开发堆栈(mongodb,nodejs)处理我的nodejs代码,我遇到了api延迟响应的麻烦,在花了大量时间之后,我发现我的服务器是真正的罪魁祸首,然后我从heroku变成了amazon EC2实例,事情开始工作得很快,速度惊人,所以很可能您的web服务器就是的罪魁祸首。
为了确保mongodb不是罪魁祸首,编写一个api端点,在这里您可以返回一些json响应,而无需对数据库进行任何查询。
https://stackoverflow.com/questions/51801978
复制相似问题