apache日志的不同统计方法性能比较
2012-03-11 16:22
225 查看
对于apache日志的统计分析,如分析URL排名,访问IP统计排名等,使用Shell脚本来直接进行是一个非常高效的手段.
apache 访问日志形式如下:
192.168.102.135 - - [03/Jan/2012:10:49:58 -0500] "GET / HTTP/1.1" 200 44
如果统计访问10名的IP地址,网络流传的方法通常是
#awk '{print $1}' access_log|sort|uniq -c|sort -k1 -nr|head
58569 192.168.102.240
6745 192.168.200.14
5785 192.168.102.135
668 ::1
43 192.168.102.54
1 172.16.1.2
我们来看一下这条命令的执行时间
time awk '{print $1}' access.log|sort|uniq -c|sort -k1 -nr|head
real 0m1.128s
user 0m1.089s
sys 0m0.031s
总共需要1.128秒。效率不算太高, 我们加以改进。
#awk '{s[$1]++}END{for (i in s) print s[i],i}' access.log|sort -k2 -nr|head
58569 192.168.102.240
6745 192.168.200.14
5785 192.168.102.135
668 ::1
43 192.168.102.54
1 172.16.1.2
real 0m0.052s
user 0m0.038s
sys 0m0.013s
总执行时间为0.052秒,但结果不太易于观察,我们column -t 下后
# time awk '{s[$1]++}END{for (i in s) print s[i],i}' access_log|sort -k2 -nr|head |column -t
58569 192.168.102.240
6745 192.168.200.14
5785 192.168.102.135
668 ::1
43 192.168.102.54
1 172.16.1.2
real 0m0.056s
user 0m0.033s
sys 0m0.022s
输出结果与使用uniq -c一致,但执行时间从1.128s 一下提升到0.056秒,效率提升20倍, 可见使用uniq -c结合sort来统计字符串的出现次数是多少效率低下啊!
本文出自 “凯骑龟来~~” 博客,请务必保留此出处http://zzkai.blog.51cto.com/804611/803021
apache 访问日志形式如下:
192.168.102.135 - - [03/Jan/2012:10:49:58 -0500] "GET / HTTP/1.1" 200 44
如果统计访问10名的IP地址,网络流传的方法通常是
#awk '{print $1}' access_log|sort|uniq -c|sort -k1 -nr|head
58569 192.168.102.240
6745 192.168.200.14
5785 192.168.102.135
668 ::1
43 192.168.102.54
1 172.16.1.2
我们来看一下这条命令的执行时间
time awk '{print $1}' access.log|sort|uniq -c|sort -k1 -nr|head
real 0m1.128s
user 0m1.089s
sys 0m0.031s
总共需要1.128秒。效率不算太高, 我们加以改进。
#awk '{s[$1]++}END{for (i in s) print s[i],i}' access.log|sort -k2 -nr|head
58569 192.168.102.240
6745 192.168.200.14
5785 192.168.102.135
668 ::1
43 192.168.102.54
1 172.16.1.2
real 0m0.052s
user 0m0.038s
sys 0m0.013s
总执行时间为0.052秒,但结果不太易于观察,我们column -t 下后
# time awk '{s[$1]++}END{for (i in s) print s[i],i}' access_log|sort -k2 -nr|head |column -t
58569 192.168.102.240
6745 192.168.200.14
5785 192.168.102.135
668 ::1
43 192.168.102.54
1 172.16.1.2
real 0m0.056s
user 0m0.033s
sys 0m0.022s
输出结果与使用uniq -c一致,但执行时间从1.128s 一下提升到0.056秒,效率提升20倍, 可见使用uniq -c结合sort来统计字符串的出现次数是多少效率低下啊!
本文出自 “凯骑龟来~~” 博客,请务必保留此出处http://zzkai.blog.51cto.com/804611/803021
相关文章推荐
- 两种不同字符串比较方法的性能对比
- 五种不同的 URL 参数解析方法的性能比较
- 不同版本的SQL Server之间数据导出导入的方法及性能比较
- 五种不同的 URL 参数解析方法的性能比较
- 五种不同的 URL 参数解析方法的性能比较
- 五种不同的 URL 参数解析方法的性能比较
- 不同版本的SQL Server之间数据导出导入的方法及性能比较
- 五种不同的 URL 参数解析方法的性能比较
- 五种不同的 URL 参数解析方法的性能比较
- 不同版本的SQL Server之间数据导出导入的方法及性能比较
- 不同版本的SQL Server之间数据导出导入的方法及性能比较
- 再谈两种不同字符串比较方法的性能对比
- 两种不同字符串比较方法的性能对比
- List<T>在搜索和排序时采用不同方法的性能比较
- [转]不同版本的SQL Server之间数据导出导入的方法及性能比较
- Java遍历Map,List的不同方法,并比较其性能
- 不同梯度下降方法实现逻辑回归性能比较(python)
- 五种不同的 URL 参数解析方法的性能比较
- List<T>在搜索和排序时采用不同方法的性能比较
- 遍历Map和List的几种方法和性能比较