间歇性缓慢的Rails应用程序

3
我在Windows机器上运行了一个Rails应用程序,使用SQL Server数据库。大多数情况下(虽然不总是),它运行得非常缓慢。奇怪的是,自从我将应用迁移到新机器后才出现这种情况——当应用运行在旧机器上时,它运行得很好。我对处理服务器问题不熟悉,所以我应该查看哪些内容来找出问题呢?
我尝试查看日志,但它们似乎不正确。例如,我在生产模式下运行应用,所以查看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秒的时间。(虽然我不确定日志是否包括数据库访问时间?)

1个回答

2
这种情况我也遇到过。这里最关键的信息是你使用的Web服务器是什么。Rails日志可以显示处理请求所用的时间,但无法显示Web服务器将请求传递给Rails堆栈所需的时间。
有些情况下,错误配置的Web服务器可能会导致请求超时延迟,例如进行始终失败的反向DNS查找。
您可以通过尝试几个Web服务器来测试此问题。在我的情况下,Webrick需要40秒才能加载页面,而Apache上的Passenger和Thin没有问题。建议尝试另一个Web服务器(可以从命令行轻松测试Thin和Webrick),看看问题是否解决。
然后您可以调试您的Web服务器设置。

根据这里的描述解决了我的问题:https://dev59.com/dXM_5IYBdhLWcg3w8ILR - Joshua

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接