Apache的日志有很多可以自己定义的项目,其中一个 %T 能够显示出服务器处理请求所用的时间。我就是对这个的定义发生了疑问,所以做了一些考证。
在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查询等一系列的过程。
PS:由这个问题也可以衍生出一个如何测算客户端网速的问题。有这样一个办法,在Header中输出服务器的响应时间,用户收到后,判断收到的时间,这个时间差就是在服务器和客户端之间所消耗的时间。
参考资料:
1、Apache 2手册
2、Apache logs: how log does it take to server a request?
日志是记录web服务器接收处理请求以及运行时错误等各种原始信息的以 .log 结尾的文件
至于哪些类型会写到日志里面,可以咨询开发,查看日志信息去分析,协助开发定位问题,这是调试过程中出现错误或异常时必须掌握的能力
先思考两个问题:
1、看日志的目的是什么?
通过网站日志可以清楚的得知用户在什么IP、什么时间、用什么操作系统、什么浏览器、什么分辨率显示器的 情况下访问了你网站的哪个页面,是否访问成功。
日志的生成方式是根据开发来的
1)有些喜欢一天一个文件,如下是根据每日生成的log,打开可以看到很明显的错误信息,有用户信息、使用的操作系统以及异常类型等
根据异常提示大概能知道是哪里的问题了,然后结合这些问题去找相关人员,同时也有助于bug的重现
2)有些懒得整就所有都放一个文件了,这种情况查看日志就会比较累了,通过是去查找时间,根据问题出现的时间去找
2、举例说明
A系统某字段长度为varchar2(10),B系统对应字段长度为varchar2(20)
实际操作中,B系统字段输入12个字符,提交时报服务器错,查看日志显XX数据表的XX字段字符长度为10,传入值超长
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)