【发布时间】:2015-04-23 22:18:57
【问题描述】:
我正在为一个通常有 1-2 个并发用户的小型内部应用程序使用付费 Heroku(35 美元/月 2x web dyno,50 美元/月银 postgresdb)计划。数据库快照大小小于 1MB。
应用程序是 Rails 4.1。在过去的两周里,生产环境的性能显着下降,Chrome 开发工具报告的响应时间像 8 秒
典型:
总共8.13s
停滞 3.643 ms
DNS 查询 2.637 ms
初始连接 235.532 ms
SSL 133.738 ms
请求已发送0.546 ms
等待(TTFB)3.43 s
内容下载4.47 s
我正在使用 Nitrous 开发环境,并在具有非预编译资产(带有镜像数据库)的开发服务器上获得 sub-1s 响应。
我是新手程序员,不清楚如何调试它。为什么在 85 美元/月以上的 Heroku 计划中,我会看到比开发环境慢 800% 的性能?考虑到我目前的编程技能水平,我的应用程序可能优化不佳(其中有几个 N+1 查询......)但是当生产有 1-2 个并发用户时会有多糟糕??
如果有帮助,请从日志中获取样本:
sample#current_transaction=16478 sample#db_size=18974904bytes sample#tables=28 sample#active-connections=6 sam
ple#waiting-connections=0 sample#index-cache-hit-rate=0.99929 sample#table-cache-hit-rate=0.99917 sample#load-avg-1m=0.365 sample#load-avg-5m=0.45 sample#load-avg-15m=0.445 sample#read-iops=
37.587 sample#write-iops=36.7 sample#memory-total=15405616kB sample#memory-free=1409236kB sample#memory-cached=12980840kB sample#memory-postgres=497784kB
来自服务器日志的示例:
Completed 200 OK in 78ms (Views: 40.9ms | ActiveRecord: 26.6ms
我在开发服务器上看到类似的数字,但实际的视觉性能是白天和黑夜。开发人员按照您的预期做出响应 - sub-1s 响应和渲染。生产服务器延迟 4-5 秒。
我认为这与建议的 ISP 无关,因为我实际上一直在旅行并看到来自美国和欧洲的相同性能问题。
【问题讨论】:
-
从应用程序日志开始,而不是数据库日志。他们会告诉你数据库查询、渲染等之间的细分
-
添加了更多信息——我真的很难过。任何更多的建议表示赞赏!我可能读错了,但服务器日志似乎没有发现任何响应缓慢——我只看到客户端的问题。但它在所有设备和不同的物理大陆上都发生在我身上!
标签: ruby-on-rails heroku response server lag