我有一台从 MochaHost 购买的带有 CentOS 6 的 VPS 服务器。它安装了 WHM/cPanel,并且我拥有完全的 root 访问权限。此服务器上的网站加载速度非常慢,但当我使用 pingdom 工具检查网站加载速度时,首次加载网站需要长达 60 秒的时间,此后,它在 pingdom 和我的浏览器上都加载得非常快。我相信服务器进入了睡眠模式,当它收到来自 pingdom.com 的 ping 时,它会很快唤醒。我向托管公司发送了数百条消息报告此问题,但这个问题从未得到解决,他们假装网站加载速度很快。
我有服务器的 root 权限,有什么办法可以查明服务器响应缓慢的原因吗?我能否查明服务器是否正在进入睡眠模式?
答案1
我不认为我们对这个问题有一个通用的答案,但很多“我的服务器很慢”的问题已关闭,因为该问题重复原因是容量规划几乎总是与性能有关。当容量用尽时,正常的影响是网站开始变慢。
您的箱子没有用完容量,然而 问题 很远 从 独特的 在 服务器故障。
最可能的原因是缓存,或者可能是许多不同的缓存,当您发出第一个请求时,所有这些缓存都已过期。您有 DNS 缓存、文件系统缓存、PHP 操作码缓存、应用程序服务器池、数据库缓存、查询缓存、API 响应缓存,可能还有很多。由于您在 VPS 上运行,因此在您空闲时,部分内存可能已交换到磁盘,从而为物理硬件的更活跃用户提供更多 RAM 供其使用,而这需要时间才能交换回来。
一些应用程序和 CMS 管理自己的类似 cron 的系统,普通用户的页面请求可以触发计划作业。长时间没有请求后,第一个请求肯定会触发这些计划作业,这可能会导致页面加载缓慢。
要找到问题,您需要做的是性能分析。我经常会使用性能分析,strace
因为它总是可用,而且我很了解它,但 XDebug(适用于 PHP)或dtrace
也是不错的选择。分析第一个请求并将其与后续请求的配置文件进行比较。两个配置文件之间的差异在于时间花费在哪里。
还有许多猜测在我上面链接的问题的答案中。其中一些答案对于这些问题的提问者来说是正确的,对你来说可能也是正确的。