网络延迟高的原因

时间:2011-05-09 21:41:36

标签: performance cakephp-1.3 latency

我现在的网站速度非常慢。 Safari的检查员和Firebug都报告说,大部分加载时间都是由于延迟造成的。实际下载发生在不到一秒钟。有很多数据库活动正在发挥作用(尽管指标表明它非常健康),但还有什么可能导致真正的高延迟?它是纯粹的网络事物还是我可以对应用程序进行更改以改善延迟数量?

我正在使用YSlow帮助识别性能改进,但总的来说,我认为它没有报告任何看似疯狂的不合理的事情。当然,改善的机会,但似乎没有什么会导致我看到的巨大加载时间。

感谢。

更新

一些背景和指标,以防它有用。这是一个CakePHP应用程序,我使用UsersController::login操作作为基准。为了确定应用程序代码在此中扮演了多少因素,我在输入UsersController::beforeFilter()后立即打印了一个堆栈跟踪。这是输出:

UsersController::beforeFilter() - APP/controllers/users_controller.php, line 13
Controller::startupProcess() - CORE/cake/libs/controller/controller.php, line 522
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 187
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 171
[main] - APP/webroot/index.php, line 83

加载时间,如Safari的检查员所示,范围从 11.2秒 52.2秒。这似乎使我远离应用程序代码,可能与我的主机有关,但也许我完全误解了这个或过度简化了它?

2 个答案:

答案 0 :(得分:0)

如果您无法直接识别应用程序中缓慢移动的组件,那么在此过程中还有许多其他步骤可能会降低您的网站速度。每当我遇到异常长的轮询时,我通常首先查看本地DNS,然后查看托管DNS。有时缓存刷新(在他们自己的部分,而不是你的)可能导致大量的轮询,直到他们的数据库赶上来。

否则,它们实际上可能会发生服务中断,并且您的请求将发送到其辅助服务器或备份服务器。如果在域解析方面一切正常,您的托管服务提供商可能会遇到服务中断,这可能会采取多种不同的形式,例如从备份中提供静态内容或过度分配共享资源,直到所有内容都按预期运行。当共享云架构出现故障时,您可以在共享云架构上体验大量他们称之为throttling的内容。从好的方面来说,在这种情况下你没有完全停电。

有一次,这只是一个共享的网格配置,我有一个处理器下地狱。其中一个奇怪的部分是静态内容仍然是从备份服务,但它仍在轮询我们的数据库(位于不同的服务器上)并导致我们的帐户throttle,因为备份过度分配。不是我们的错,但主持人开始发送关于我们过度长期民意调查的恶意电子邮件。故事的道德是,如果它不是你的应用程序,并且它是突如其来的,我会打赌你会发现一些硬件故障或配置错误。

现在我想起来了,如果你正在联合一些外部内容(无论是服务器还是浏览器方面),它可能不在你的责任链中。如果您通过订阅服务提供广告,则可能会出现高负载期或停电期。这些只是我采取的缩小罪魁祸首的步骤。

答案 1 :(得分:0)

可能这对你来说不是解决方案,但是当我有狗狗慢速徒步旅行(以及FF)时我只是将DNS服务器更改为opendns(208.67.222.222,208.67.220.220)并解决了我的所有问题。 / p>