仓酷云

标题: 来一发shell收罗体系cpu 内存 磁盘 收集信息 [打印本页]

作者: 因胸联盟    时间: 2015-1-14 20:22
标题: 来一发shell收罗体系cpu 内存 磁盘 收集信息
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!cpu利用率

收罗算法
经由过程/proc/stat文件收罗并盘算CPU总利用率大概单个核利用率。以cpu0为例,算法以下:
1.cat/proc/stat|grep‘cpu0’失掉cpu0的信息
2.cpuTotal1=user+nice+system+idle+iowait+irq+softirq
3.cpuUsed1=user+nice+system+irq+softirq
4.sleep30秒
5.再次cat/proc/stat|grepcpu0失掉cpu的信息
6.cpuTotal2=user+nice+system+idle+iowait+irq+softirq
7.cpuUsed2=user+nice+system+irq+softirq
8.失掉cpu0在30秒内的单核使用率:(cpuUsed2CcpuUsed1)*100/(cpuTotal2CcpuTotal1)
相称于利用topCd30下令,把user、nice、system、irq、softirq五项的利用率相加。

[size=1.2em]
  1. viewsourceprint?a=$(`cat/proc/stat|grep-E"cpu"|awk-vtotal=0{$1="";for(i=2;i<=NF;i++){total+=$i};used=$2+$3+$4+$7+$8}END{printtotal,used}`)sleep30b=$(`cat/proc/stat|grep-E"cpu"|awk-vtotal=0{$1="";for(i=2;i<=NF;i++){total+=$i};used=$2+$3+$4+$7+$8}END{printtotal,used}`)cpu_usage=$(((${b[1]}-${a[1]})*100/(${b[0]}-${a[0]})))
复制代码


[size=1.2em]cpu负载
收罗算法:
读取/proc/loadavg失掉呆板的1/5/15分钟均匀负载,再乘以100。

[size=1.7em]
  1. viewsourceprint?cpuload=$(`cat/proc/loadavg|awk{print$1,$2,$3}`)load1=${cpuload[0]}load5=${cpuload[1]}load15=${cpuload[2]}
复制代码


[size=1.7em]内存收罗

使用步伐利用内存

收罗算法:
读取/proc/meminfo文件,(MemTotalCMemFreeCBuffersCCached)/1024失掉使用步伐利用内存数。

[size=1.2em]
  1. viewsourceprint?awk/MemTotal/{total=$2}/MemFree/{free=$2}/Buffers/{buffers=$2}/^Cached/{cached=$2}END{print(total-free-buffers-cached)/1024}/proc/meminfo
复制代码


[size=1.2em]MEM利用量
收罗算法:
读取/proc/meminfo文件,MemTotalCMemFree失掉MEM利用量。

[size=1.2em]
  1. viewsourceprint?awk/MemTotal/{total=$2}/MemFree/{free=$2}END{print(total-free)/1024}/proc/meminfo
复制代码


[size=1.2em]SWAP利用巨细
收罗算法:
经由过程/proc/meminfo文件,SwapTotalCSwapFree失掉SWAP利用巨细。


磁盘信息收罗

diskio

1、IN:均匀每秒把数据从硬盘读到物理内存的数据量
收罗算法:
读取/proc/vmstat文件得出比来240秒内pgpgin的增量,把pgpgin的增量再除以240失掉每秒的均匀增量。
相称于vmstat240下令bi一列的输入。





  1. viewsourceprint?a=`awk/pgpgin/{print$2}/proc/vmstat`sleep240b=`awk/pgpgin/{print$2}/proc/vmstat`ioin=$(((b-a)/240))
复制代码

2、OUT:均匀每秒把数据从物理内存写到硬盘的数据量
收罗算法:
读取/proc/vmstat文件得出比来240秒内pgpgout的增量,把pgpgout的增量再除以240失掉每秒的均匀增量。
相称于vmstat240下令bo一列的输入。
  1. viewsourceprint?a=`awk/pgpgout/{print$2}/proc/vmstat`sleep240b=`awk/pgpgout/{print$2}/proc/vmstat`ioout=$(((b-a)/240))
复制代码

[size=1.7em]收集

流量

以http://www.centos.bz/为例,eth0是内网,eth1外网,猎取60秒的流量。
呆板网卡的均匀每秒流量
收罗算法:
读取/proc/net/dev文件,失掉60秒内发送和吸收的字节数(KB),然后乘以8,再除以60,失掉每秒的均匀流量。

[size=1.2em]
  1. viewsourceprint?traffic_be=$(`awkBEGIN{ORS=""}/eth0/{print$2,$10}/eth1/{print$2,$10}/proc/net/dev`)sleep60traffic_af=$(`awkBEGIN{ORS=""}/eth0/{print$2,$10}/eth1/{print$2,$10}/proc/net/dev`)eth0_in=$(((${traffic_af[0]}-${traffic_be[0]})/60))eth0_out=$(((${traffic_af[1]}${traffic_be[1]})/60))eth1_in=$(((${traffic_af[2]}${traffic_be[2]})/60))eth1_out=$(((${traffic_af[3]}${traffic_be[3]})/60))
复制代码

[size=1.2em]包量
呆板网卡的均匀每秒包量
收罗算法:
读取/proc/net/dev文件,失掉60秒内发送和吸收的包量,然后除以60,失掉每秒的均匀包量。

  1. viewsourceprint?packet_be=$(`awkBEGIN{ORS=""}/eth0/{print$3,$11}/eth1/{print$3,$11}/proc/net/dev`)sleep60packet_af=$(`awkBEGIN{ORS=""}/eth0/{print$3,$11}/eth1/{print$3,$11}/proc/net/dev`)eth0_in=$(((${packet_af[0]}-${packet_be[0]})/60))eth0_out=$(((${packet_af[1]}${packet_be[1]})/60))eth1_in=$(((${packet_af[2]}${packet_be[2]})/60))eth1_out=$(((${packet_af[3]}${packet_be[3]})/60))
复制代码

如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
作者: 活着的死人    时间: 2015-1-16 14:59
标题: 来一发shell收罗体系cpu 内存 磁盘 收集信息
Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。
作者: 谁可相欹    时间: 2015-1-25 07:49
上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题.
作者: 蒙在股里    时间: 2015-2-2 21:38
Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
作者: 小妖女    时间: 2015-2-8 08:09
有疑问前,知识学习前,先用搜索。
作者: 海妖    时间: 2015-3-7 21:55
对于英语不是很好的读者红旗 Linux、中标Linux这些中文版本比较适合。现在一些Linux网站有一些Linux版本的免费下载,这里要说的是并不适合Linux初学者。
作者: admin    时间: 2015-3-15 21:38
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
作者: 兰色精灵    时间: 2015-3-22 17:08
其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2