欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

awk 分析web日志(页面执行时间)(常见应用3)

程序员文章站 2023-11-30 12:22:16
今天主要讲的,是通过awk分析日志,快捷得到执行时间。在性能以及效率方面比前一篇提到的有很大提高... 13-11-19...

前一段时间,我写过一篇文章,shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询),其中提到了分析耗时页面重要性。今天主要讲的,是通过awk分析日志,快捷得到执行时间。在性能以及效率方面比前一篇提到的有很大提高!

一、web日志文件格式


复制代码
代码如下:

222.83.181.42 - - [09/oct/2010:04:04:03 +0800] get /pages/international/tejia.php http/1.1 "200" 15708 "-" "mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; sv1; sicent; woshihoney.b; .net clr 2.0.50727; .net clr 3.0.4506.2152; .net clr 3.5.30729)" "-" 0.037</p> <p>按照空格分隔的话,最后一个字段[0.037] 是页面执行时间,第7个字段 是页面访问地址。

二、执行代码


复制代码
代码如下:

awk 'begin{
print "enter log file:";
getline logs;
#logs="/var/log/nginx/access.log-20101008";
ofmt="%.3f"; </p> <p>while(getline < logs)
{
split($7,atmp,"?");
alistnum[atmp[1]]+=1;
alisttime[atmp[1]]+=$nf;
ilen++;
}
close(logs);
print "\r\ntotal:",ilen,"\r\n======================================\r\n";
for(k in alistnum)
{
print k,alistnum[k],alisttime[k]/alistnum[k] | "sort -r -n -k3";
} </p> <p>}'

结果:

awk 分析web日志(页面执行时间)(常见应用3)

性能:

awk 分析web日志(页面执行时间)(常见应用3)

422780条日志,统计完成速度是:5秒左右。