awk 19

一般来说流量带宽是通过snmp协议取网卡流量画图。不过有的时候,为了优化分析或者排错,也会直接去计算服务的访问流量。方法很简单,根据日志中记录的 请求时间(squid记录的是请求响应完成时间,如果要精确,可以再减去响应时间,不过一般squid的文件不至于5分钟内还传不完的……),按每5分钟 一汇总其字节数,然后均摊到300秒上。

计算全日志中最高带宽的命令行如下:

cat $ACCESS_LOG|awk -F'[: ]' '{a[$5":"$6]+=$14}END{for(i in a){print i,a[i]}}'|sort|awk '{a+=$2;if(NR%5==0){if(a>b){b=a;c=$1};a=0}}END{print c,b*8/300/1024/1024}'

(日志为标准apache日志格式) 而把最后的awk改成’{a+=$2;if(NR%5==0){print $1,a*8/300/1024/1024;a=0}}’,就可以输出每5分钟时的流量值,然后用GD库画图~~(有时间看看perl的GD:Graph 模块,应该不难)

案例:使用awk与sort -nr分析访问日志,找出每种请求返回状态码的请求个数:

访问日志的文件格式:

113.31.27.213 www.5iops.com – [15/Apr/2012:04:06:17 +0800] “GET /faq/ HTTP/1.0″ 200 2795 “-” “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.2 Safari/535.11″ 118.119.120.248, 222.215.136.44 0.003 192.168.0.25:80 200 3.31

我们最常用的处理方式为:cat /home/logs/nginx/www.5iops.com.access.log|awk ‘{print $(NF-1)}’|sort -nr |uniq -c ,但其实,这个处理的效率较低:

time cat /home/logs/nginx/www.5iops.com.access.log|awk ‘{print $(NF-1)}’|sort -nr |uniq -c

1 200″

3 “404”

4 “304”

7377 “200”

48 “-”

real 0m0.107s

user 0m0.102s

sys 0m0.013s

time cat /home/logs/nginx/www.5iops.com.access.log|awk ‘{a[$(NF-1)]++} END{for (i in a) print i ” ” a[i]}’

“304” 4

“404” 3

“200” 7399

“-” 49

200″ 1

real 0m0.018s

user 0m0.013s

sys 0m0.008s

可见使用后面的awk处理效率高10倍~

另一个案例,用一行shell命令处理以下文本分析任务:

有一个文本文件,内容为每行为每隔5分钟记录的带宽峰值,共一个月(共8640行),我需要计算出,每天的峰值并排序:

traffic文件格式:

-bash-4.1$ cat traffic.txt|more

2012-04-01 00:00 1952.34mbps

2012-04-01 00:05 2198.34 mbps

2012-04-01 00:10 2117.07 mbps

2012-04-01 00:15 2104.83 mbps

2012-04-01 00:20 1878.73 mbps

一种常见解决方法:

-bash-4.1$ for i in cat traffic.txt|awk '{print $1}'|sort|uniq ; do cat traffic.txt|grep $i|sort -nr -k3 |head -1 ; done

2012-04-01 21:35 3876.02 mbps

2012-04-02 21:15 3577.66 mbps

2012-04-03 21:35 3371.59 mbps

2012-04-04 21:10 3087.17 mbps

2012-04-05 21:35 3202.44 mbps

2012-04-06 20:45 3703.53 mbps

2012-04-07 20:40 4177.43 mbps

2012-04-08 14:25 3837.9 mbps

2012-04-09 20:50 3082.46 mbps

更高效的解决方法:

-bash-4.1$ cat traffic.txt |awk ‘{if($3 > a[$1])a[$1]=$3} END{for(i in a)print i ” ” a[i]}’

2012-04-28 5369.81

2012-04-19 3474.73

2012-04-29 4824.24

2012-04-10 2979.91

2012-04-01 3876.02

2012-04-20 3866.19

2012-04-11 3548.73

2012-04-02 3577.66

2012-04-30 4077.35

经对比,后面一种方法处理执行效率仍然高10倍.可见活用awk对文本或日志分析处理效率明显提高.

  • 本文来自:Linux教程网

转载于:https://blog.51cto.com/9820344/1622247

使用Log日志 计算带宽流量峰值相关推荐

  1. 计算网站流量,选择适合带宽或月流量

    带宽流量4000GB/月,很多人没有概念,这到底是多少带宽?这4000GB流量可以支持多少IP访问呢? 首先,你自己算一下你的网站有多少PV(页面访问量,1个独立IP可能有多个PV) 然后我们来算一算 ...

  2. 性能测评:腾讯云轻量服务器4核8G12M带宽流量CPU主频型号

    腾讯云轻量4核8G12M应用服务器带宽,12M公网带宽下载速度峰值可达1536KB/秒,折合1.5M/s,每月2000GB月流量,折合每天66GB,系统盘为180GB SSD盘,地域节点可选上海.广州 ...

  3. java怎么查看网络流量_Linux查看实时带宽流量情况

    Linux中查看网卡流量工具有iptraf.iftop以及nethogs等,iftop可以用来监控网卡的实时流量(可以指定网段).反向解析IP.显示端口信息等. 安装iftop的命令如下: CentO ...

  4. 春节互联网流量峰值破纪录 Gartner最新CDN报告将阿里云评为全球级

    网上看春晚.网购年货新三样.集五福抢红包,互联网为春节注入了新的娱乐玩法.承载大部分互联网业务的阿里云透露,2018年春节期间的互联网流量峰值增长迅猛,创下了历史新高.与此同时,阿里云在Gartner ...

  5. ios开发循环网络请求_谈谈 iOS 网络层设计(SSJNetWork封装缓冲,log日志,自动取消网络请求)...

    2.delegate效率高,delegate只是保存了一个对象指针3.在多个通信事件的时候,delegate显得直观也易维护. delegate缺点:1.因方法的声明和实现分离开来,代码的连贯性不是很 ...

  6. Log日志分析--awstats

    1:获得awstats工具 1):可以从http://awstats.sourceforge.net/网站下载.##awstats的官网 2):在服务器上直接下载的方法 [root@nagios ~] ...

  7. 业界重磅新书《UNIX/Linux网络日志分析与流量监控》首发

    <UNIX/Linux网络日志分析与流量监控> 出版社官网: http://www.cmpbook.com/stackroom.php?id=39384 每本图书附赠51CTO学院的价值1 ...

  8. 《Unix/Linux网络日志分析与流量监控》2014年11月底出版

    2014年11月 <Unix/Linux网络日志分析与流量监控>重磅新书出版 近日,历时3年创作的75万字书稿已完成,本书目前正在出版社清样阶段即将出版发行.本书紧紧围绕网络安全的主题,对 ...

  9. 腾讯云8核16G18M轻量服务器CPU带宽流量性能测评

    腾讯云轻量应用服务器8核16G18M带宽,18M公网带宽下载速度峰值可达2304KB/秒,相当于2.25M/s,系统盘为270GB SSD盘,3500GB月流量,折合每天116GB流量.腾讯云百科分享 ...

最新文章

  1. 性能优化之Java(Android)代码优化
  2. Stack and queue.
  3. Qt中使用的工程文件(.pro文件)
  4. 对多态变形引擎背后方法的概述
  5. A JWT old for new exchange schema
  6. Apache Iceberg 快速入门
  7. 计算机一级ms office选择题,2012计算机一级MsOffice选择题及答案(1)
  8. 五大板块(3)—— 结构体
  9. ARM的UART实验
  10. keil删除工程_RTT 是如何管理和构建工程的?
  11. coursera机器学习笔记-多元线性回归,normal equation
  12. Kubernetes 使用 Ingress-nginx 实现灰度发布功能
  13. 拓端tecdat|R语言聚类有效性:确定最优聚类数分析IRIS鸢尾花数据和可视化
  14. 关于protues仿真中的OLED显示模块的使用
  15. 【长文预警】美团联合创始人王慧文清华产品课
  16. 为知笔记保存为html,为知笔记怎么保存网页 为知笔记保存网页教程
  17. PS教程丨如何使用PS消除全景图中的三脚架?
  18. 懂技术的产品就是全栈产品?扯.J.B.淡
  19. OpenGL ES 实现实时音频的可视化
  20. 如何让你的广告效果最好?CPC广告生存法则

热门文章

  1. 机器学习算法——支持向量机SVM5(核函数)
  2. 用angr找到strcpy的栈溢出漏洞
  3. 机器学习基础:模型评估(下)
  4. 【JY】YJK前处理参数详解及常见问题分析(一)
  5. CRF和CQP的区别
  6. 递归、迭代、分治、回溯、动态规划、贪心算法
  7. SQLServer 查询分析器里大小写转换快捷键
  8. 从秋香,芳娜到不嫁国人的女大学生
  9. Filecoin与以太坊结合开启Web3.0丨Filecoin是唯一可信存储
  10. bitcoinj生成中文助记词