间歇性慢轨应用程序

问题描述:

我有一台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) 

但实际上花了40秒钟我驾驶的时候“/实验“到页面完成加载的时间。 (虽然我不确定日志是否包含数据库访问时间?)

这发生在我身上。这里可能缺少的最重要的信息就是您使用的是什么Web服务器。 Rails日志会显示处理请求的时间,但并未显示Web服务器将请求传递到rails栈需要多少时间。

在某些情况下,配置不正确的Web服务器可能会导致请求发生很长的超时延迟,例如,执行始终失败的反向DNS查找。

你可以通过尝试几个Web服务器来测试。在我的例子中,Webrick需要40秒才能完成页面加载,而Apache和Thin上的Passenger没有问题。我建议尝试一个备用的Web服务器(特别是使用thin和webrick轻松测试命令行),以查看问题是否消失。

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

+0

解决了我在这里描述的问题http://*.com/questions/1156759/webrick-very-slow-when-accessing-applications-from-remote-desktop – Joshua 2011-11-01 20:56:34