我正准备把这头发拉出来。 我有一个在Heroku上托pipe的应用程序,使用Zerigo免费的DNS。 该应用程序可在:
用户间歇性地(大约50个左右请求)经历了非常长的加载时间(〜2分钟),并且当我尝试通过观看我的服务器日志进行分类时,他们的请求似乎不会等到等待期结束。 典型的加载时间为200-400ms。 我正在使用NewRelic,并没有指出任何服务器负载的问题,虽然它拿起了信标的最终用户问题,并把这次图表作为“networking”。
使用Firebug和Chrome devtools我可以看到在我的机器上发生这种情况的时间表,并且在Firebug将其分类为“DNS查找”并且Chrome似乎没有分类的响应之前,它们都显示了很长的等待时间。 第一个响应发生后,网站的其他部分加载非常快。
我会猜测这是因为您的DNS提供商(zerigo.net)正在为其DNS服务器发布IPV6logging。 您的Windows和MAC客户端正在使用启用了IPV6的DNS服务器,但没有IPV6连接。 这会导致DNS超时,尝试通过IPV6访问DNS服务器,然后再回到IPV4。 尝试closuresDNSparsing器和客户端计算机上的IPV6,并查看是否获得更好的结果。
原来问题是Heroku分配的三个循环IP地址之一是不好的。 他们根据我的支持请求计算了这一点。 感谢大家为您提供的方法和工具的追求!
对于遇到这个问题的其他人,这有助于解释:
http://tiwatson.com/blog/2011-2-17-heroku-no-longer-using-a-global-request-queue
Heroku不使用全局请求队列,所以一个长时间运行的请求可以回锁快速运行的请求。