我有一个相当大的应用程序,从 spree 扩展内部运行。现在的问题是,即使在本地,所有请求都非常慢。对于发出的每个请求,在开始执行之前,我在浏览器状态栏中收到诸如“等待本地主机”或“等待服务器”之类的消息 3 - 4 秒。我可以看到日志文件中记录的执行时间非常好。但是由于初始延迟,整体响应时间很差。所以请建议我,我可以从哪里开始考虑改善这种情况?
问问题
1402 次
2 回答
0
此类问题的一个可能根本原因是初始 DNS 名称解析在最终解析之前失败。tcpdump
您可以使用(如果您的平台可用)或wireshark检查是否是这种情况。在端口 53 上查找进出客户端主机的 taffic,并查看名称响应是否及时发生。
如果事实证明这是问题所在,那么您需要确保客户端配置为使其尝试的第一个解析器知道您的服务器地址(我猜这些是失败的本地 LAN 地址)。不同的平台有不同的配置方式。一个快速的技巧是将您的服务器地址放在客户端的主机文件中,看看是否可以修复它。
于 2010-07-18T11:54:59.130 回答
-1
发送请求后,您将看到“等待主机”,直到 Ruby 工作完成,它开始发送响应。所以,如果几乎有任何处理工作让你慢下来,你会看到这个错误。你想要做的是开始查看你看到行为的函数,并将它们分解成几部分,看看哪些部分是慢的。如果一切都很慢,那么您需要查看每个函数的共同点——在函数之前,或者应用程序控制器代码,或类似的东西。我所做的,当我只是在玩耍以查看我需要修复的内容时,只是在我的代码中的不同阶段放置“放置”语句,以打印当前时间,然后我可以看到哪个阶段需要很长时间,你知道?
于 2010-07-18T15:02:19.610 回答