3

有没有人对 Rail 开发页面显示不规律地减速和加速有任何经验(页面在控制台显示整个页面已呈现后 15-20 秒出现)。

我的开发环境是 Mac (Lion) 上的 rails 3.0.17、WEBrick 1.3.1、ruby 1.9.2,以及用于开发数据库的 Postgres v11(Heroku 提供的应用程序)。

最近,我注意到加载页面时出现了一些很长的延迟……有时 15 到 20 秒,并且延迟与页面的复杂性完全无关,给定的页面可能会快速加载几次,然后加载缓慢。几分钟可能会很糟糕,然后消失一个小时。

无论页面加载速度是慢还是快,rails 日志总是显示页面渲染得相当快......我会看到类似“Completed 200 OK in 486ms”但随后浏览器可能会说“等待本地主机”再等 15显示页面前几秒。

似乎不依赖于浏览器(FF 或 Safari 的行为相同)。

似乎与更新代码库无关。我正在测试一些 UI 元素,一切都很顺利,然后突然有几个页面挂了 15-120 秒。

即使在我将 gem 'rails-dev-boost' 添加到开发中的 Gemfile 之后,仍然会发生。

我还添加到我的开发机器 gem 'http_logger' 以记录对 S3 等外部 http 请求的调用,但不认为这是一个因素(延迟通常发生在不访问外部 API 的页面上)。

我的布局有几个外部 .js 依赖项,例如http://static.twilio.com/libs/twiliojs/1.0/twilio.min.js,但我已将其添加到布局的底部,所以我会(大概) 如果被延迟,仍然可以快速查看页面内容。(此外,它可能被我的浏览器缓存了)。

当然我试过重启机器,经过验证的活动监视器对于 CPU 和内存使用来说似乎是正常的。当时间机器做它的事情时,它似乎没有关联。

更多信息:根据下面 AKG 评论中的建议,我使用了 Firebug 的 Web 控制台,并且大多数情况下,样式表会以几毫秒的速度加载,但是当速度变慢时,我发现大多数样式表会出现 8-20 秒的延迟...这表明 webrick 未能及时提供页面?

4

2 回答 2

2

可能是在调用渲染之后但在发送响应之前执行错误/缓慢的中间件。我最近遇到了这个问题,在某些情况下暂停超过 1 分钟,而罪魁祸首竟然是Bulletgem,它旨在帮助我们检测 N+1 个查询。我删除了中间件,问题就消失了!

于 2016-08-16T00:54:48.963 回答
0

我有几次同样的问题。我切换到Mongrel。这自动解决了问题。但是,我在 Rails 2.3.8 中得到了这个。

于 2012-12-31T07:15:12.360 回答