Apache 文档称 %D 可用于日志格式来显示:
处理请求所需的时间(以微秒为单位)。
但我不清楚这是什么意思。它包括请求持续时间和/或响应持续时间吗?
我正在尝试计算传送一个页面需要多长时间,而不依赖于网络延迟或带宽。
答案1
这里有几个问题 - 而且术语相当混乱。
提供页面所需的时间,不依赖于网络延迟或带宽
但传递一个页面需要多长时间所有关于网络延迟和带宽。此外,网络服务器没有“页面”的概念 - 只有 URL - 通常,浏览器中的页面将由多个 URL 组成,希望其中一些 URL 会被缓存。虽然有一些非常尝试在服务器端获取页面加载时间的昂贵工具,我还没有看到一个可以很好地与缓存和/或 PRG 配合使用的工具。
%D 记录 Apache 开始处理请求(即我相信它省略了握手)和将其完全卸载到本地 TCP 堆栈之间的时间。
您无法仅测量处理请求和编写响应所需的时间。
有一个 Apache 模块可以让你记录反应开始的时间- 但这仅能表明何时可以获得完整的答复。
另一方面,如果您使用靠近 Web 服务器的反向代理,则网络开销将会很小。
但这仍然是在谈论 URL,而不是页面。
如果你想测量页面响应时间,请查看剧集/雅虎回旋镖/HTML5 的 Web 计时 API
请注意,这些都是关于衡量最终用户体验的 - 因此指标会受到网络的影响。Boomerang 结合了衡量基线网络性能的功能。
答案2
“响应请求所用的时间” 意思是:如果 Apache 处理请求用了 1 秒,而客户端需要 10 秒才能下载答案,那么它会在日志中写入“10 秒”。如果 nginx 位于 apache 前面,那么“响应请求所用的时间” 就等于处理请求的时间,因为 nginx 很快就从 apache 获取响应,然后迅速将自己传递给客户端。
答案3
我认为这就是你所追求的,这是 apache 生成页面而不是将其提供给客户端所花费的时间。