|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇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]- 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]- 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]- 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]- 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一列的输入。
- 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一列的输入。
- 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]- 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,失掉每秒的均匀包量。
- 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教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们! |
|