我目前正在将 WordPress 安装(在线上)从一个托管解决方案迁移到另一个。在这样做时,我正在通过编辑我的本地主机文件来测试新的托管解决方案(共享服务器),以便
www.domain.com
指向新解决方案的IP。在旧主机上,页面加载平均约为 8 秒,这就是我们移动主机的原因。但是当我使用我的主机文件测试新服务器时,网页会加载,并且我已经验证它是从新服务器加载的,但它的加载时间是30 多秒。
这是操作系统必须在每个请求上处理主机文件的问题吗?新服务器上的加载时间在页面请求中非常均匀。就好像每个请求时间都乘以 4。
在将客户转移到更糟糕的解决方案之前,我需要弄清楚这一点。
我已经测试过在 OS X 10.10.4 和 Windows 7 Enterprise 上更改主机文件,结果相同;将 www.domain.com 指向新服务器会导致 30 秒以上的页面加载。
是否有另一种方法可以针对共享服务器环境测试域,所以我可以查看这是否是本地操作系统问题而不是他们的服务器?共享服务器的 IP ping 保持在 35 毫秒范围内,因此看起来并不健康。
编辑Traceroute 看起来不错,19 跳。
编辑我能够获得 SSH 登录。结果top
如下所示:
top - 12:19:12 up 58 days, 10:27, 2 users, load average: 29.86, 38.15, 35.39
Tasks: 2 total, 1 running, 1 sleeping, 0 stopped, 0 zombie
Cpu(s): 44.0%us, 13.1%sy, 0.0%ni, 35.8%id, 6.1%wa, 0.5%hi, 0.5%si, 0.0%st
Mem: 32953672k total, 31990688k used, 962984k free, 2911692k buffers
Swap: 8388540k total, 1100716k used, 7287824k free, 15149856k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11521 lifetiu1 20 0 14952 984 796 R 1.9 0.0 0:00.01 top
18995 lifetiu1 20 0 11528 1628 1292 S 0.0 0.0 0:00.04 bash
Mem 的使用是否足以导致这种减速?如果是这样,这非常表明我应该建议我的客户去另一个主机。
来自主机文件的 DNS 解析通常是即时的。您的 ping 响应时间很短,如果您没有看到明显的路由问题和跟踪路由或带宽问题,那么这可能是服务器的问题。使用 top/htop/proc 文件/ftp 检查服务器资源可以让您知道服务器是否因其他用户而过载。根据您提供的信息,我建议您切换主机,尤其是在来自多个客户端位置的页面加载时间较长的情况下。
使用主机文件在这里不是问题。
恒定 30+ 秒。延迟表示一个严重的问题,可能不仅仅是简单的“缺乏资源”。您的 Web 应用程序是否使用数据库?它们通常是共享主机设置的瓶颈,因此如果您广泛使用它,请检查您的查询执行时间。并检查您是否在代码中的某处没有超时,或者由于某种原因您的应用程序没有尝试连接到旧服务器(连接到通过 DNS 解析的地址等)。
如果在 PHP 中启用XDebug可能会很有用。您还可以尝试在您自己的笔记本电脑上的虚拟机中运行您的应用程序(即使用 VirtualBox),以比较结果并轻松调试。