有什么我可以做些什么来减less我的静态http请求的等待时间(在铬的networking面板)?

我正在使用apache 2.4.9Ubuntu 14.04上运行amazon aws ec2微型实例。 拥有这个实例的原因是为了在testing和解决一些错误之前进行项目。 目前只有less数人(<10人)不定期地使用该项目(每天<20次)。 在我的项目中,我使用缩小,所以我只有几个静态内容:像1个CSS文件,可能是3个JS文件。 他们不是很大,所有文件的总和低于300Kb。

回顾瀑布图,从我的项目加载, 在这里输入图像说明

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

我还在这里发现了另一个高度相关的问题 (这实际上是我的问题),并试图通过切换HostnameLookups Off但它没有改变任何东西。

我没有/etc/httpd/conf/httpd.conf ,因此我将它添加到/etc/apache2/sites-available/000-default.conf 。 我的configuration中也没有像LogFormat这样的东西,所以我跳过了这部分。

那么有什么我可以做的,以减less这个时间? 当我回顾一下从服务器位置收集到的同样的图表时,我看到等待时间有小幅的改善,但情况依然如此。

我明白,我可以搬到更好的服务器,更好的硬盘/内存/ CPU,但这是显而易见的。 知道有这么多的Apacheconfiguration参数,我认为这可能是有什么调整。

PS谢谢JakeGould我看着apache2.conf并修改它(而不是000-default.conf ,如前所述)。 我也修改了KeepAliveTimeOut到3和MaxKeepAliveRequests到20更适合我的网站。

根据Chrome文档 ,等待时间是“等待最初响应的时间”。 – 但你已经知道了。

似乎没有任何进一步的解释可用,但根据以下时间表,“等待”阶段在逻辑上似乎是networking延迟或Web服务器处理 – 即发送资源请求到接收响应的第一个字节。

Chrome时间细节

您已经说过您正在使用Amazon EC2,但您尚未说明您正在使用哪种实例types。 Amazon实例的创build绝对不是一样的,有些实例的存储优先级低于其他实例,对于CPU和networkingstream量也是如此,因此,您最好分析一下瓶颈 – 您的磁盘不必因此而成为瓶颈。 您可以尝试移动到SSD支持的实例,例如m3.medium或m3.large 。

要测量您的iowait,请在发出testing请求的同时使用适当的时间段内的iostat命令(包含在Ubuntu上的sysstat软件包中)。

另一个有争议的资源可能是内存。 Linux在内存中caching文件通常是相当不错的,但是如果你没有足够的“免费”内存,Apache将会把所有的文件都放在磁盘上。

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

我不认为有一种方法可以控制亚马逊。 您可以尝试将最重要的内容保存在caching中,也许可以通过创build一个具有最重要的静态内容的小型虚拟硬盘。

但是对于Amazon EC2上的任何问题,最好的build议是把他们搞糟,并使用自己专用的服务器。 这是不好的质量(记住崩溃 – 云我的屁股亚马逊),它是无效的,这是中央情报局和国家安全局访问,这是非常昂贵的。