【问题标题】:intermittently slow rails app间歇性慢速轨道应用程序
【发布时间】:2011-07-31 23:32:40
【问题描述】:

我有一个带有 SQL Server 数据库的 Windows 机器上的 Rails 应用程序,而且大多数时候(尽管并非总是如此)它的运行速度非常缓慢。奇怪的是,这只是在我将应用程序迁移到新机器后才发生的——当应用程序在旧机器上运行时,它运行良好。我不熟悉处理服务器的东西,所以我应该看看什么来找出问题?

我尝试查看日志,但它们似乎不正确。例如,我在生产模式下运行应用程序,因此查看 production.log,我看到以下内容是我的最后一个请求:

   Started GET "/experiments" for 197.57.189.98 at 2011-04-07 12:14:40 -0700
      Processing by ExperimentsController#index as HTML
    Rendered experiments/_experiment_table.html.erb (5.0ms)
    Rendered experiments/_experiment_table.html.erb (13.0ms)
    Rendered experiments/_experiment_table.html.erb (3.0ms)
    Rendered experiments/_experiment_table.html.erb (2.0ms)
    Rendered experiments/_experiment_table.html.erb (2.0ms)
    Rendered layouts/_header.html.haml (1.0ms)
    Rendered experiments/index.html.erb within layouts/application (5410.5ms)
    Completed 200 OK in 5671ms (Views: 500.1ms | ActiveRecord: 5162.5ms)

但实际上从我导航到“/experiments”到页面完成加载需要 40 秒。 (不过,我不确定日志是否包括数据库访问时间?)

【问题讨论】:

    标签: ruby-on-rails windows http


    【解决方案1】:

    这件事发生在我身上。这里缺少的最关键的信息可能是您使用的 Web 服务器。 Rails 日志会显示处理请求所花费的时间,但不会显示 Web 服务器将请求传递到 Rails 堆栈所花费的时间。

    在某些情况下,错误配置的 Web 服务器可能会导致请求的超时延迟过长,例如,执行总是失败的反向 DNS 查找。

    您可以通过尝试几个网络服务器来测试这一点。在我的例子中,Webrick 页面加载需要 40 秒,而 Apache 和 Thin 上的 Passenger 没有问题。我建议尝试使用备用 Web 服务器(易于从命令行进行测试,特别是 Thin 和 webrick),看看问题是否消失。

    然后您可以调试您的网络服务器设置。

    【讨论】:

    猜你喜欢
    • 2015-01-24
    • 2011-01-28
    • 2014-12-16
    • 2014-11-01
    • 2014-09-15
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    相关资源
    最近更新 更多