如何检查HTTP请求延迟/等待时间的原因?

时间:2009-10-09 21:16:29

标签: ruby-on-rails apache http passenger latency

我向我的服务器发出一个简单的GET请求,它在平均约1.2秒之后回来(使用firebug NET选项卡,“等待响应”部分 - 甚至不是整个响应时间)

我对服务器的ping是0.250

使用带有rails 2.3.3的Passenger,在rails日志中,请求正在进行~0.023

我的服务器在GoDaddy上,所以我也用firebug检查了他们的主页 - 他们页面的“等待响应”时间是~0.320

最坏的情况应该是0.4左右...所以我在哪里失去了另外0.8秒?

我还能检查什么?

编辑:

似乎与铁轨无关 - 一个图像请求(只有apache响应,doest完全触及轨道)也需要大约1.2秒

4 个答案:

答案 0 :(得分:1)

GoDaddy可能在您和您的HTTP服务器之间有一个反向代理。

他们可能正在做一些事情,比如立即向您发送响应标头,然后可能从缓存中为您提供响应的内容。

因此,从HTTP服务器的角度来看,会传输响应。然后它转到GoDaddy的反向代理,最后转到你的网络浏览器。

答案 1 :(得分:0)

GoDaddy托管文件的位置与托管主页的位置不同。

您是否检查过您在同一台服务器上托管的其他页面?可能由于数据库连接或“缓慢”连接等原因导致页面在发送回客户端之前需要一段时间。

答案 2 :(得分:0)

尝试在Servers或VHosts配置中将PassengerPoolIdleTime设置为0。 也许你的服务器正在关闭应用程序实例以快速生成一个新实例,每个请求通常需要很长时间。

有关此设置的详细信息,请查看文档: http://modrails.com/documentation/Users%20guide%20Apache.html#PassengerPoolIdleTime

答案 3 :(得分:0)

听起来不是你的问题,而是ISP的问题。

你可以从同一台服务器直接(或apache)对你的rails app的内部ip / port进行wget吗? 这将告诉您probaby是在应用程序堆栈中还是在上游。

如果可以的话,可以使用apache工具,称为ab“apache benchmark”来帮助。

关键是对您的计算机进行ssh访问。