免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2554 | 回复: 1
打印 上一主题 下一主题

LINUX CPU 利用率的计算 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-09 16:40 |只看该作者 |倒序浏览
因WhatsUp 无法直接监控LINUX CPU的利用率 。所以只能先写个脚本,然后定义一个OID ,让WINDOWS 通过SNMP取值。
看了一些关于LINUX CPU 利用率算法的东西,然后硬着头皮写了我的第一个SHELL 。这里可能有两个问题。

1:CPU 的算法不是很确定
2:脚本需要优化。

希望哪位高人出来帮助修正修正。


#!/bin/bash
totala=`head -1 /proc/stat |awk '{print $2+$3+$4+$5+$6+$7+$8}'`
noidlea=`head -1 /proc/stat |awk '{print $2+$3+$4+$6+$7+$8}'`
idlea=`head -1 /proc/stat |awk '{print $5}'`
usera=`head -1 /proc/stat |awk '{print $2}'`
systema=`head -1 /proc/stat |awk '{print $2}'`
sleep 0.5

#b=`head -1 /proc/stat |awk '{print $2+$3+$4+$5+$6+$7+$8}'`
#bb=`head -1 /proc/stat |awk '{print $2+$3+$4+$6+$7+$8}'`
#bbb=`head -1 /proc/stat |awk '{print $5}'`

totalb=`head -1 /proc/stat |awk '{print $2+$3+$4+$5+$6+$7+$8}'`
noidlb=`head -1 /proc/stat |awk '{print $2+$3+$4+$6+$7+$8}'`
idleb=`head -1 /proc/stat |awk '{print $5}'`
userb=`head -1 /proc/stat |awk '{print $2}'`
systemb=`head -1 /proc/stat |awk '{print $2}'`

user=$[$userb-$usera]
total=$[$totalb-$totala]
idle=$[$idleb-$idlea]
system=$[$systemb-$systema]

usage=$[$user+$system]
tusage=$[$total-$idle]
bbbtest=$[$usage/$total]

# for debug
#echo user=$user
#echo total=$total
#echo idle=$idle
#echo system=$system
#echo usage=$usage



#echo $totala  " " $totalb

echo "scale=2;  ($usage*100/$total)"| bc
echo "scale=3; $idle*100/$total"| bc
echo "scale=3; $tusage*100/$total"| bc

因为有个WINDOWS 的软件要监控LINUX CPU ,

[ 本帖最后由 heiheijian 于 2007-11-9 16:46 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-11-10 21:38 |只看该作者
安装和配置SNMP服务
启动snmp服务
snmp服务能提供你需要的信息,不止是CUP,还有内存,网络,磁盘很多很多。。。试试看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP