共计 1564 个字符,预计需要花费 4 分钟才能阅读完成。
导读 | 本文章向大家介绍 Apache 记录请求响应时间日志,主要包括 Apache 记录请求响应时间日志使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。 |
官网介绍
在 Apache2 的中文手册中,是这样定义 %T 这个变量的。%T 处理完请求所花时间,以秒为单位。
在 Apache2 的英文文档中,定义如下:
%T the time taken to server the request, in seconds.
由此可见,这个时间表示的是服务器处理这个请求的总时间。而不是 Apache 服务器解析 PHP 脚本,并且输出脚本的时间。因此,我们可以看到同样的一个页面,网速比较慢的用户访问时间会长,而网速较快的用户访问,则时间比较短。
%T 记录的是以秒为单位的时间,这对于我们来说是不太够的。因为很多情况下,我们需要保证我们网页的响应速度在 1 秒以内。从 Apache 2.0 开始,提供了一个新的参数 %D。可以记录服务器处理请求的微秒时间(注意和 %T 的定义不同)。
配置响应时间
我在服务器上做了一次测试,代码中嵌入了一个执行时间的检查判断,同时监视日志文件中产生的时间。结果为:页面监测脚本执行时间为 10009206 毫秒,而日志中记录的是 10009838,两者时间并不一样,日志中记录的时间稍微长一些,包含了 DNS 查询等一系列的过程。找到 apache 配置文件
netstat -nap | grep 80
# 找到对应端口进程 31114
tcp6 0 0 :::4430 :::* LISTEN 31114/httpd
ps auxf | grep 31114
# 找到对应 apache 的进程命令中的配置文件 *.conf 的路径,到指定路径修改配置文件,例如
vim httpd.conf
修改指定端口下的 VirtualHost
<VirtualHost 80>
.......
CustomLog "/var/prof.log" "[%a]%{%F %T}t id=%{APIIndex}i time=%D(us) url=%U%q"
</VirtualHost>
指令:CustomLog "/var/prof.log" "[%a]%{%F %T}t id=%{APIIndex}i time=%D(us) url=%U%q"
%D - 官方解释:Time taken to process the request, in millis,处理请求的时间,以微秒为单位
%T - 官方解释:Time taken to process the request, in seconds,处理请求的时间,以秒为单位
%{ms}T - 官方解释:Time taken to commit the response, in millis,提交响应的时间,以毫秒为单位
修改后重启 apache,观察日志输出数据如下:
[200.200.222.95]2021-12-04 15:39:32 id=- time=100107(us) url=/apps/secvisual/home/home/on_dev_manage
[200.200.222.95]2021-12-04 15:39:38 id=- time=106476(us) url=/apps/secvisual/home/home/on_dev_manage
[200.200.222.95]2021-12-04 15:39:43 id=- time=101263(us) url=/apps/secvisual/home/home/on_dev_manage
[200.200.222.95]2021-12-04 15:39:48 id=- time=101333(us) url=/apps/secvisual/home/home/on_dev_manage
正文完
星哥玩云-微信公众号