卡卷网
当前位置:卡卷网 / 技术教程 / 正文

如何在 Apache 中记录请求处理时间?

作者:卡卷网发布时间:2024-09-09 21:49浏览数量:277次评论数量:0次

如何在 Apache 中记录请求处理时间?  第1张


如果你有一个 apache (2) web 服务器,你可能有一个 access.log 文件,它使用 “combined” 日志格式向你显示各种数据。让我们看看如何将处理时间包含到该日志文件中。

默认情况下,组合日志中的一行如下所示:

"GET /info-tech/ HTTP/1.1" 200 46482 "http://fplanque.com/info-tech/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5"


请注意 IP 后面的 2 个短划线 - -。第一个选项表示“I could not identify the user using ident”,第二个选项表示“未执行用户身份验证”。

现在,让我们面对现实吧:你永远不会使用 ident 识别任何人。你的 apache conf 甚至可能不会尝试。那块田地是远古遗留下来的。因此,让我们用有用的东西替换第一个破折号,即:请求的处理时间!请注意,通过这样做,我们可以保持文件的全局结构相同,并且您可能正在使用的任何日志处理工具都不会受到影响。

因此,在您的 apache2.conf 文件中,查找以下行:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined


并将其替换为:

LogFormat "%h %D %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined


(更具体地说,我们将第二个字段从 %l 更改为 %D)

现在,重新启动 apache 并查看您的日志!您的日志行现在应如下所示:

"GET /info-tech/ HTTP/1.1" 200 46482 "http://fplanque.com/info-tech/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5"


96395 是以微秒为单位的时间。换句话说,处理请求需要 96 毫秒。请注意,根据 Apache 的 Send Buffer 是否填满,这可能包括将数据发送回请求方所需的时间,因此这在很大程度上取决于请求方的位置、缓冲区大小、使用的路由、MTU 大小、TCP 窗口大小等......

如果您通过不同的代理请求相同的 URL 并查看日志,则可能会看到重大变化。

快速提示:执行此操作时过滤日志的一种方法:

tail -f /some_path/access.log | grep "GET /info-tech/ HTTP"



END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码