【发布时间】:2017-03-17 14:46:59
【问题描述】:
我有一台由本地提供商(塞尔维亚)托管的虚拟服务器,我想将其移至另一家提供商(德国)的专用服务器,因此我租用了专用服务器一个月来试用。 经过两周的测试,我遇到了难题,因为我找不到为什么德国服务器的网络响应比塞尔维亚服务器慢。事实上,我正在塞尔维亚进行测试,但物理距离不应该是一个因素(或者是吗?)。
我注意到德国服务器很慢,因为我使用 PHP 页面在第三台机器上显示来自链接的 MSSQL 服务器(2012 Express)的数据,并且数据拉取速度非常慢。
在尝试优化PHP,查询和尝试不同的连接类型后,我试图查看Web服务器是否相同,或者是网络传输问题,所以我做了一个空白的HTML页面,只打印一个单词并复制页面“index.html”到两台服务器的网络根目录,我从两台服务器得到不同的响应时间:塞尔维亚语 ~40 毫秒,德语 ~100 毫秒。
以下是加载页面的 Chrome 中的服务器规格和屏幕:
- 操作系统 – Win server 2012 标准 64 位
- 内存 – 4GB
- CPU – 英特尔至强 E5620 2.4GHz
- HDD – 40GB(不知道类型)
- WAMP – v2.2
- Apache – 2.2.21
- PHP – 5.3.10
- 操作系统 – Win server 2012 R2 标准 64 位
- RAM – 64GB CPU – Intel CORE i7-6700 3.4GHz
- 硬盘 – 250GB (SSD)
- WAMP – v2.2
- Apache – 2.2.22
- PHP – 5.3.13
两个 Apache 都启用了“deflate”和“filter”模块,并且两台服务器上都有相同的 .htaccess 文件。
最后,我的问题是:有没有人知道去哪里寻找或尝试什么。
【问题讨论】:
-
距离是一个很大的因素。你说你有第三台机器可以连接——同样,网络扮演着重要的角色。你的德国服务器在原始 CPU 能力方面可能更强大,但由于你非常依赖网络,它似乎是一个瓶颈。
ab、wrk或siege等工具可以帮助您确定服务器的潜在处理能力。如果您断言德语确实更快,那么您可以 100% 确定它的响应速度较慢,因为它正在等待网络任务完成。 -
我只是没想到1000公里左右的距离会造成这样的延迟。而且这是在空白页面上,更不用说是否必须从服务器中提取某些数据。
标签: php apache performance