全部博文(12)
分类:
2008-04-14 17:14:05
实战:HPUX主机freemem%计算脚本案例
背景:在XX项目,同时需要监控HP PA和HP IA架构主机的freemem%信息。
解决方案讨论:
一、 totalmem的计算
方法1
#totalmem=`ssh $i -l root "echo phys_mem_pages/D | adb64 -k /stand/vmunix /dev/kmem|tail -n1"`
讨论:adb64只能用于PA架构主机,对于IA架构主机没有得到正确的结果
方法2
totalmem=`ssh $i -l root dmesg|grep -E 'Physical|Kbytes'|awk '{print $2}'`
讨论:dmesg中totalmem信息,有可能被其他信息缓冲掉,不一定能够得到正确的结果
方法3
totalmem=`ssh $i -l root grep Physical /var/adm/syslog/syslog.log |awk -F Physical: '{print $2}'|awk '{print $1}'`
讨论:该方法推荐,同时适用于PA和IA架构主机
二、 freemem的计算
freemem=`ssh $i -l root grep Memory /tmp/top.out|awk '{print $8}'|awk -F "K" '{print $1}'`
讨论:该方法推荐,同时适用于PA和IA架构主机
三、freemen%的计算
方法1
mem=$TIME" "`expr $freemem \* 100 / $totalmem`
讨论:expr适用于整型数值,当freemem比较大时。expr $freemem \* 100会超过范围得到负数结果。
方法2
mem=$TIME" "`echo "$freemem * 100 / $totalmem"|bc`
讨论:该方法推荐,同时适用于PA和IA架构主机。且freemem比较大时,计算结果正常,不会得到负数结果。