我们正在尝试将内部票务系统从服务器机柜中的 Microsoft Small Business Server 移至 Rackspace Cloud Server。安装的是 Fedora 11 LAMP,除了附加到 httpd.conf 底部的 vhosts 外,它应该是默认的。
新服务器正遭受着极长的加载时间的困扰,通过观察 Firebug 中的页面加载很容易发现问题,但我无法找出原因。
这是旧服务器: 旧服务器 http://rkuykendall.com/uploads/old.server.png
我原本以为会有这种情况,但由于不再本地托管,速度会慢一些。相反,新服务器: 新服务器 http://rkuykendall.com/uploads/new.server.png
似乎每次只能提供一个文件。以下是这种阶梯式加载时间效果的另一个示例: 楼梯加载时间效应 http://rkuykendall.com/uploads/staircase.png
另一个非常明显的阶梯效应例子是: 楼梯效果 2 http://rkuykendall.com/uploads/staircase2.png
我和 Freenode #httpd 上的一些人讨论过,但都没有成功。我创建了一个重复的服务器来玩,还创建了一个带有 Fedora Core 13 的新服务器,只移动了数据库和网络文件,但没有成功。
有什么建议么?
答案1
我们找到了答案!这是 IPTables 配置问题。
我们又启动了另一台测试服务器来尝试查找问题,这次是 CentOS。问题没有出现,所以我们打开 IPTables 开始切换到新服务器。启用 IPTables 后,问题又出现了。我们调查了配置文件,并-m limit --limit 1/s
在配置中找到了问题。
从我们的 iptables 配置中删除-m limit --limit 1/s
解决了所出现的问题。
答案2
你的加载时间太长了,因为浏览器无法找到9需要下载的文件。在打开另一个连接之前,三个 CSS 文件需要 30 秒,一个需要 20 秒才能超时。全部修复出现在红色的在此(http://rkuykendall.com/uploads/staircase.png) 的屏幕截图和性能将会好得多。
技术细节是,HTTP/1.1 规范建议浏览器只做两个每个域同时并发连接数。由于本例中所有连接都来自同一个域,因此丢失文件超时需要长达 30 秒的时间,因此只有一个其他文件可以下载。