排查Centos与ubuntu系统awk运行效率差异[原创] 不指定

刘天斯 , 2010/03/05 18:02 , Linux , 评论(4) , 阅读(27751) , Via 本站原创 | |
      同一个分析日志的awk脚本,在Centos、ubuntu操作系统运行效率存在巨大差异。即在ubuntu中只需1分钟,而在Centos中则需要20分钟。以下为我的排查步骤:
1、检查服务器内核版本
引用

      拿一台升级过最新Linux内核(2.6.32.3)的CentOS5.4服务器来测试,结果还是没有改善 。

2、检查内核ulimit参数
引用

      在Centos服务器调整所有ulimit参数与ubuntu系统一致,结果还是一样。

3、优化awk脚本
引用

      由于mawk与gawk部分语法上存在差异,如将转义符‘\’换成'\\',双引号换成单引号,依然没有效果。

4、检查gawk版本
引用

      检查两个系统的gawk版本,发现所有Centos版本默认自带的gawk都低于ubuntu系统自带的3.1.6,尝试在Centos服务器下载、安装源码gawk3.1.6,结果速度提升了20倍。测试结果如下:
       time /usr/local/bin/gawk -f test.awk access.log >"temp.txt"
       real    0m48.739s
       user    0m42.904s
       sys     0m5.389s
Tags: , ,
KevinGam
2011/04/26 15:28
这个比较确实有意义,赞一个
KEN
2010/12/30 17:16
完全不知道你作这个测试的意义是什么
刘天斯 回复于 2010/12/31 08:51
业务的一个需求,检查同一脚本在不同环境的运行差异。
猪立业 Email Homepage
2010/04/30 12:10
看了一下,以后还请多多指教

在此踩过!!...o(∩_∩)o...
有空也可以和我做个友情链接啊!

<a href=http://www.thinksoa.cn>ThinkSOA</a>
刘天斯 回复于 2010/04/30 15:17
已添加。
selboo Email Homepage
2010/03/09 14:00
cat test.awk
刘天斯 回复于 2010/03/09 14:26
简单的去日志空格
BEGIN{  FS = "[\"]";    #以"作为分隔符          }{  gsub(/ /,"",$4); #去除所有的空格  gsub(/ /,"",$6);    gsub(/ /,"",$8);    gsub(/ /,"",$9);   if($2== "-"){    #缺少访问页面,直接删除不要    next  }  str_4=$4  if($4== ""){  #不存在来源页面    str_4="-"  }  print " " $1 $2 $3 str_4 $5 $6 $7 $8 " "$9}
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]