Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Heroku环境下无法解释的高响应时间_Ruby On Rails_Heroku_Response_Server_Lag - Fatal编程技术网

Ruby on rails Heroku环境下无法解释的高响应时间

Ruby on rails Heroku环境下无法解释的高响应时间,ruby-on-rails,heroku,response,server,lag,Ruby On Rails,Heroku,Response,Server,Lag,我正在使用付费Heroku(35美元/月2x web dyno,$50美元/月silver postgresdb)计划开发一个小型内部应用程序,通常有1-2个并发用户。数据库快照大小小于1MB 应用程序是Rails 4.1。在过去两周内,production env的性能显著下降,Chrome开发工具报告的响应时间为8秒 典型: 总数​8.13s 停滞不前​3.643 ms DNS查找​2.637 ms 初始连接235.532 ms SSL​133.738 ms 发送请求​0.546 ms 等待

我正在使用付费Heroku(35美元/月2x web dyno,$50美元/月silver postgresdb)计划开发一个小型内部应用程序,通常有1-2个并发用户。数据库快照大小小于1MB

应用程序是Rails 4.1。在过去两周内,production env的性能显著下降,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/mo+Heroku计划中,我会看到比开发环境慢800%的性能?考虑到我目前的编程技能水平,我的应用程序可能没有得到很好的优化(其中有一些N+1查询…),但当生产中有1-2个并发用户时,情况会有多糟

日志中的示例(如果有帮助):

样本#当前交易=16478样本#数据库大小=18974904字节样本#表格=28样本#活动连接=6 sam
ple#等待连接=0样本#索引缓存命中率=0.99929样本#表缓存命中率=0.99917样本#load-avg-1m=0.365样本#load-avg-5m=0.45样本#load-avg-15m=0.445样本#读取iops=
37.587样本#写入iops=36.7样本#内存总量=15405616kB样本#内存空闲=1409236kB样本#内存缓存=12980840kB样本#内存postgres=497784kB

来自服务器日志的示例:
在78毫秒内完成200 OK(视图:40.9毫秒|活动记录:26.6毫秒

我在dev服务器上看到了类似的数字,但实际的视觉性能是日夜交替的。dev的响应与您预期的一样-小于1s的响应和渲染。生产服务器的延迟为4-5s


我不认为这与ISP的建议有关,因为我实际上一直在旅行,看到来自美国和欧洲的相同性能问题。

在Heroku上向你的应用程序生态系统添加
NewRelic附加组件
,并探索发生了什么。你可以从Heroku的仪表盘上完成。选择免费计划,你将获得2周的试用期在试用期之后,将会有一些限制,但无论如何,这对于衡量小型应用程序的性能来说已经足够了。
此外,您还可以添加
日志条目加载项
,您可以通过web界面访问应用程序的日志历史记录。

谢谢,但我在找什么?例如,db每15秒将此信息发布到日志中—包括在问题中的编辑中。只需添加NewRelic,您就会在图表上看到应用程序的反应到服务器端的请求。可能在您的情况下,问题在于您的互联网提供商或wifi路由器或其他与您的应用程序不相关的东西。这太疯狂了。我刚安装完New Relic,应用程序的速度非常快……但我什么也没做!这几乎就像我推的上一个版本不知怎么搞砸了,而这个新的提交wiNR gem添加的日志将其重新整理。我想我会监视几天,如果问题得到解决,我会结束这个问题…那么,你最终做了什么?你解决了问题吗?从应用程序日志开始,而不是数据库日志。他们会告诉你数据库查询之间的细分,呈现等更多信息--我真的很困惑。还有更多的问题吗感谢dvice!我可能读错了,但服务器日志似乎没有发现任何响应速度慢的问题——我只是在客户端看到了这个问题。但它发生在我的所有设备和不同的物理大陆上!