【经验总结】如何提高统计监控脚本的效率

如何提高统计监控脚本的效率

By katana


对于比较大的日志,linux的一些命令还是很消耗资源的,多次遇到定时统计监控脚本导致机器负载过高,磁盘占满等情况,严重影响服务提供。

1.实时统计监控请使用tail命令:

现在我们做了很多实时监控,5,10分钟运行一次,每次对最近10分钟的内容进行统计并报警,但是很多人都是直接对文件grep时间,这样越到晚上,文件越大(按天日志),遍历的内容越多,请看以下实际cpu使用时间测量例子:

user@host:~/log/day> time grep "^/[23:5" -c day_recv_20090615.log 

68290


real    0m9.279s

user    0m0.740s

sys     0m1.060s

user@host:~/log/day> time tail -n 1000000 day_recv_20090613.log|grep -c "^/[23:5"

76548


real    0m3.493s

user    0m0.192s

sys     0m0.420s

user@host:~/log/day> time tail -n 100000 day_recv_20090614.log|grep -c "^/[23:5"

66405


real    0m0.330s

user    0m0.020s

sys     0m0.032s

经过tail之后,命令效率提高95%以上。


2.如果能使用grep命令不要使用awk

time grep "|deal|"  day_recv_20090615.log -c 

10819728


real    0m9.525s

user    0m2.396s

sys     0m0.384s


time awk -F"|" '{if($2=="deal") print $0}' day_recv_20090611.log |wc -l 

10976923


real    0m13.878s

user    0m8.997s

sys     0m1.316s


3.对于比较大的文件,sort命令尽量使用-T选项指定临时文件生成文件夹

如果sort不指定临时文件生成文件夹,那么将默认将sort中产生的临时文件放到系统临时目录,当你的文件过大,超过根目录盘的空余空间时,不仅脚本执行不完,还会造成系统一些问题,所以请sort较大文件时加上-T选项,把临时文件生成指定到剩余空间较大的其他盘。


要提高脚本效率,大家可以用time命令来测量你使用的命令的效率,当然不对能同一文件用不同的命令测量,而应该对同一类型其他文件进行测试,因为在第一次使用该文件之后,系统会把该文件的处理过程放到内存中并没有释放,您再次使用该文件的时候,系统处理时间当然变快很多。


本文原创自无线技术运营空间: http://wireless.qzone.qq.com 及 http://blog.csdn.net/wireless_tech (专注无线技术运营——无线技术(操作系统/数据库/WEB前端/负载均衡/系统容灾/系统安全/短信接入/WAP接入/3G等)、无线业务运营、无线开放平台、统计分析(用户行为分析/数据挖掘)、CP合作,联系我们:1780551083@qq.com)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值