【发布时间】:2017-06-15 00:54:49
【问题描述】:
我正在解决一些对 Angular 1.3、NodeJS、Postgres DB 应用程序堆栈的 http 调用的缓慢问题。 Remote 托管在 AWS EC2 实例上。
Google's dev tools documentation 让我对时间有了一些很好的理解,this SO post 解释了你可以做的事情。
我对特定 HTTP 调用的网络响应显示 TTFB(到第一个字节的时间)很慢,有时与在 ttfb 时间中添加的 3s 一样慢,这表明:
a) 客户端和客户端之间的网络连接不良 服务器。因此数据到达服务器并返回的速度很慢。
b) 处理请求的服务器速度较慢。这要么是因为 硬件薄弱或应用程序运行缓慢。或者,这两个 问题可能同时存在。
我尝试过的:
- 比较本地和远程 AWS 响应时间会产生类似的缓慢。所以看起来我的客户端和我的服务器之间的网络不是问题
- 在有问题的查询上运行
EXPLAIN ANALYZE会产生快速的处理时间 - 我们对服务器的其他部分使用 Redis 缓存,但不是这个特定的调用
我的问题是:如果看起来远程和本地之间的速度没有太大差异,并且查询时间相当快,还有什么可能会增加缓慢? Node 端是否有一些中间件或处理,或者来自 Angular 的一些限制?
奇怪的是,我还发现对于相同的请求,TTFB 时间偶尔会发生很大变化……TTFB 时间 3 秒。这是为什么呢?
网络响应:
解释分析相关查询的结果:
Planning time: 0.915 ms
Execution time: 1.687 ms
(30 rows)
版本:
Postgres:9.6.1
select version();
PostgreSQL 9.6.1 on x86_64-apple-darwin14.5.0, compiled by Apple LLVM version 7.0.2 (clang-700.1.81), 64-bit
节点:7.4.0
Knex:0.12.6
角度:1.3
【问题讨论】:
-
您使用的是哪个数据库库以及哪个版本?
-
@vitaly-t 添加在上面
-
我问的是数据库,不是服务器的版本。
-
@vitaly-t 抱歉,我该如何检查?
-
您不知道您使用哪个库从 Node.js 访问 PostgreSQL?什么模块从 Node.js 执行你的 SQL 查询?
标签: angularjs node.js performance postgresql amazon-web-services