【问题标题】:Rails 3 development site is 10x faster than production site on Apache 2 + Phusion PassengerRails 3 开发站点比 Apache 2 + Phusion Passenger 上的生产站点快 10 倍
【发布时间】:2012-09-04 18:24:10
【问题描述】:

我有一个实时生产站点(生产模式)与一个以开发模式运行的测试站点一起运行。它们都在同一台机器上运行,使用 Rails 3、Apache 2 和 Phusion Passenger。如果我在生产站点上加载相同的页面,加载页面大约需要 4-5 秒。如果我在测试站点上请求相同的页面,则(仅)大约需要 0.5 秒。 10倍的主要差异。一直认为生产会比开发快:(如果我在生产站点上重新加载页面,加载时间保持不变。这是怎么回事?我该如何调试这个问题?因为现在生产站点太慢了即使没有任何流量。

我对其他 Web 服务器进行了一些额外的测试,特别是 Litespeed 甚至 Webbrick。两者都表现出相同的奇怪行为。生产模式比开发模式慢十倍。所以它可能与 Rails 相关。但我不能把手指放在它上面。由于日志告诉我页面渲染速度很快,但是页面出现在我的屏幕上之前需要很长时间。

【问题讨论】:

  • Firebug 中的“网络”面板对每个请求所花费的时间进行了很好的细分。这会让你看看是否有任何特定的子请求是罪魁祸首。可能是一个不错的起点?
  • 除了 Firebug,我建议添加 New Relic 性能监控。它检查您的 Rails 代码的哪些部分运行缓慢,并检查服务器和最终用户浏览器之间的性能。有时大部分时间可以通过网络发送单个资产。

标签: ruby-on-rails-3 apache2 passenger


【解决方案1】:

感谢大家的建议。我设法把它修好了。我最终决定将我所有的生产数据加载到我的开发服务器上。原来我的会话表是罪魁祸首。它包含大量数据,查询速度很慢。我添加了一个索引,问题就解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-06
    • 2010-09-14
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多