AIX5.3下查看系统、用户、文件系统占用内存数量
#!/usr/bin/ksh
#查看总的内存数量:
totalmem=$(vmstat -v|head -n 1|awk '{print $1/256}')
echo "总内存(物理内存):"
echo $totalmem MB
echo
#查看各用户使用的内存:
usermem=$(for username in `cat /etc/passwd|awk -F: '{print $1}'`
do
svmon -U $username|grep $username" "
done)
usermem=`echo "$usermem"|grep -v "0 0 0 0"|awk '{print $1,$2/256,"MB"}'`
echo "各用户内存(物理内存):"
echo "$usermem"
usermem=$(echo "$usermem"|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{print sum1;}')
usermem=$(echo $usermem|awk -F. '{print $1}')
echo "用户内存(物理内存)合计:" $usermem MB
echo
#查看文件系统缓存:
clientmem1=`svmon -G|grep "^pin"|awk '{print $4}'`
clientmem2=`svmon -G|grep "^in use"|awk '{print $5}'`
clientmem=`expr $clientmem1 + $clientmem2`
clientmem=`expr $clientmem / 256`
echo "文件系统缓存(物理内存):"
echo $clientmem MB
echo
#查看系统使用内存:
sysmem=$(svmon -S -s -u|cut -b 54-|grep -v "0 0 0 0"|grep [0-9]|awk '{print $1,$2}')
supremeseg=`echo "$sysmem"|grep S|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{sum1=sum1*16*1024*1024;print sum1;}'`
largeseg=`echo "$sysmem"|grep L|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{sum1=sum1*16*1024;print sum1;}'`
mediumseg=`echo "$sysmem"|grep m|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{sum1=sum1*64;print sum1;}'`
smallseg=`echo "$sysmem"|grep s|awk 'BEGIN{sum1=0;}{sum1=sum1+$2;}END{sum1=sum1*4;print sum1;}'`
sysmem=$(expr $supremeseg + $largeseg + $mediumseg + $smallseg)
sysmem=$(expr $sysmem / 1024)
echo "系统内存(物理内存):"
echo $sysmem MB
echo
#查看空闲内存:
freemem=$(vmstat -v|grep free|awk '{print $1/256}')
echo "空闲内存(物理内存):"
freemem=$(echo $freemem|awk -F. '{print $1}')
echo $freemem MB
echo
收起