Apache - 奇怪的时间到第一字节的问题

时间:2016-02-02 06:15:14

标签: linux apache

不知怎的,我认为linux中的stat存在问题,但我在linux中测试了一个常规空文件夹,而不是大小小于1000字节的图标。测试是使用Apache 2.2进行的,服务器位置位于加拿大东部。

网页测试结果: http://www.webpagetest.org/result/160202_KK_9HJ/1/details/

我很好奇为什么目录列表的第一个字节的时间比图标的第一个字节的时间高三分之一?

我在linux中使用哪些设置来修复此问题?

1 个答案:

答案 0 :(得分:0)

第一个字节的时间表示1)将请求发送到服务器,2)处理请求和3)从服务器返回至少一些结果所花费的时间。

对于类似大小的资源1)和3)应该是相同的,所以现在让我们专注于2)。

当你请求目录时,Apache必须检查目录是否包含index.html文件,如果不是,它会读取目录,然后它开始构建HTML页面,创建指向父目录和每个文件/子目录的链接在目录中,它必须返回文件。

当您请求ico文件时,Apache只需要获取该文件并将其返回给您,简单明了。

因此,您可以看到第一个工作比第二个工作更多。所以我不认为这是一个公平的考验。将静态index.html文件与静态ico文件进行比较以进行更公平的测试,然后您就会知道是否存在问题。

此外,根据您的mpm选择,设置,服务器负载和服务器历史记录,可能有一个线程或进程启动等待处理第一个请求(快速)或第一个请求可能必须启动一个来处理此请求(慢)。对于第二个请求,这可能不是问题,特别是在启用保持活动的情况下。有关详情,请参阅此处:https://serverfault.com/questions/383526/how-do-i-select-which-apache-mpm-to-use

还有TCP slow start issue,它特别影响旧版本的操作系统和软件,但这不太可能对您所讨论的小负载造成影响,也会影响总下载时间而不是TTFB 。这仍然是确保您运行最新软件的另一个原因。

最后,您的TTFB主要受您的托管服务提供商以及服务器管道和跳数的影响 它到达Apache所以,一旦你选择了托管服务提供商,它几乎是你无法控制的。同样,这通常会全面反映,而不是你在这两个请求之间看到的差异。