Apache日志中的处理时间

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?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑白安全

快速入门xss 判断网站是否存在xss漏洞

XSS全称跨站脚本攻击,用户浏览网页时,嵌入的Script代码被执行,从而达到攻击用户的目的,常见漏洞页面,网站搜索页面,留言板。

4K40
来自专栏JAVA高级架构

大型高并发与高可用的三层缓存架构总结

对于高并发架构,毫无疑问缓存是最重要的一环,对于大量的高并发,可以采用三层缓存架构来实现,nginx+redis+ehcache nginx ? 对于中间件ng...

60670
来自专栏快乐八哥

搭建AngualarJS开发环境

1.选择Web浏览器 Chrome和Firefox浏览器 2.选择代码编辑器 Subline Text和Visual Studio Code 3.安装Web...

21760
来自专栏Flutter入门到实战

开发工具总结(3)之Git及GitHub快速入门图文全面详解

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/3f12bd3ccf2a

12530
来自专栏LIN_ZONE

Nginx负载均衡的5种策略(转载)

本文转自:nginx负载均衡的5种策略(转载) 如需转载请注明出处:https://www.cnblogs.com/zhuchenglin/p/9750970...

38910
来自专栏Java技术栈

微信扫码登录是如何实现的?

网页版微信刚推出时,无数人被它的登录方式惊艳了一下,不需要输入用户名密码,打开手机微信扫一扫,便自动登录。从原理上讲,二维码只能是一段文本的编码,如何用它实现快...

42840
来自专栏腾讯Bugly的专栏

移动 H5 首屏秒开优化方案探讨

导语 随着移动设备性能不断增强,web 页面的性能体验逐渐变得可以接受,又因为 web 开发模式的诸多好处(跨平台,动态更新,减体积,无限扩展),APP 客户端...

94550
来自专栏逸鹏说道

全站缓存时代

原则:动静分离,分级缓存,主动失效。 Web 开发中,接口会被分为以下几类: 纯静态页面。打死我都不会修改的页面。很长一段时间内,基本上不会修改。比如:关于我们...

44680
来自专栏Laoqi's Linux运维专列

Gitlab 安装配置管理实例

23540
来自专栏知晓程序

开发 | 网络接口全攻略!这些技巧,让你的小程序永不「失联」

微信为小程序提供了 4 个接口,供小程序访问网络。如果你刚开始接触小程序开发,也许会对小程序网络访问产生不少的疑问。

14440

扫码关注云+社区

领取腾讯云代金券