我可以做些什么来减少静态 http 请求的等待时间(在 chrome 的网络面板中)?

Sal*_*ali 8 performance http latency apache-2.4

我正在amazon aws ec2微实例Ubuntu 14.04apache 2.4.9。之所以有这个实例,只是为了在项目上线前测试和解决一些bug。目前只有少数人(<10)不定期地使用该项目(每天<20次)。在我的项目中,我使用了缩小,所以我只有很少的静态内容:比如 1 个 css 文件,可能是 3 个 js 文件。它们并不是很大,所有文件的总和低于 300Kb。

查看瀑布图,从加载我的项目, 在此处输入图片说明

我注意到等待阶段花费了大量时间(如果我将其删除,很可能网站的加载速度将提高 2 倍以上)。我也知道每个阶段对应什么(我什至在这里回答了高度相关的问题),我不知道我到底能做些什么来减少等待时间。在我的例子中,像 css/js/img 这样的静态资源增加了大量的等待时间,所以它与编写更高效的代码无关。

我还在这里发现了另一个高度相关的问题(这实际上是我遇到的同一个问题)并尝试通过切换来遵循建议,HostnameLookups Off但它根本没有改变任何东西。

我没有/etc/httpd/conf/httpd.conf,因此我将其添加到/etc/apache2/sites-available/000-default.conf. LogFormat我的配置中也没有类似的东西,因此我跳过了这一部分。

那么我能做些什么来减少这个时间吗?当我查看从服务器位置收集的相同图表时,我看到等待时间略有改善,但情况仍然相同。

我知道我可以迁移到更好的服务器,具有更好的 HDD/RAM/CPU,但这是显而易见的。知道apache有这么多配置参数,我想可能是有一些东西可以调优。

PS感谢 JakeGould 我调查apache2.conf并修改了它(不像000-default.conf我之前提到的那样)。我还修改KeepAliveTimeOut为 3 和MaxKeepAliveRequests20,这更适合我的网站。

Lot*_*har -1

这是硬盘问题。您运行的磁盘很可能负载很重,从磁盘获取数据只是需要时间。

我认为亚马逊上没有办法控制这一点。您可以尝试将最重要的内容保留在缓存中,方法是创建一个包含最重要静态内容的小型虚拟磁盘。

但对于 Amazon EC2 上的任何问题,最好的建议是赶紧出去并使用您自己的专用服务器。它的质量很差(记住崩溃 - 云我的屁股亚马逊),它无法保存,它可以被 CIA + NSA 访问,而且非常昂贵。