在rails中处理缓慢的请求,“等待服务器”消息

时间:2010-07-18 06:34:01

标签: ruby-on-rails performance response dispatcher

我有一个非常大的应用程序,从spree扩展内部运行。现在的问题是,即使在本地,所有请求都非常缓慢。在开始执行之前,我在浏览器状态栏中收到“等待本地主机”或“等待服务器”等消息3到4秒的消息。我可以看到日志文件中记录的执行时间非常好。但是由于最初的延迟,整体响应时间很短。所以请建议我,在哪里可以开始考虑改善这种情况?

2 个答案:

答案 0 :(得分:0)

此类问题的一个可能根本原因是初始DNS名称解析在最终解析之前失败。您可以使用tcpdump(如果适用于您的平台)或wireshark来检查是否属于这种情况。在端口53上寻找与客户端主机之间的通信,并查看名称响应是否及时发生。

如果事实证明这是问题,那么您需要确保客户端配置为使其所知的第一个解析器知道您的服务器地址(我猜这些是失败的本地LAN地址)。不同的平台有不同的配置方式。快速入侵是将服务器的地址放在客户端的hosts文件中,看看是否能解决问题。

答案 1 :(得分:-1)

在您发送请求后,您将看到“等待主持人”,直到Ruby工作完成,并开始发送响应。因此,如果几乎任何处理工作都会让您失望,那么您会看到此错误。你想要做的是开始查看你看到行为的函数,并将它们分解成片段以查看哪些peices很慢。如果一切都很慢,那么你需要查看每个函数共有的东西 - 在函数之前,或者应用程序控制器代码之类的东西。我做什么,当我正在四处寻找我需要解决的问题时,只需在我的代码中将'puts'语句放在不同的阶段,打印当前时间,然后我就可以看到哪个阶段需要很长时间,你知道吗?