#!/bin/bash
# Program:
# Real-time Performance
# History:
# 2014/09/29 caishunzhi First release
DIR=”/opt/tools”
HOSTNAME=`/bin/hostname`
SORT=${1:-4}
NUM=${2:-6}
function get_performance()
{
#cpu
>/tmp/xentopcpu_
#/usr/sbin/xentop -i2 -d1 -b -f >/tmp/xentopcpu_
#CPU=`awk -F[-r] {print $NF} /tmp/xentopcpu_ |grep -v VBD_WR |awk BEGIN{sum=0}{sum+=$2}END{print sum}`
#traffic and io
/usr/sbin/xentop -i1 -d1 -b -f |grep -v VBD_WR >/tmp/xentop_1
TX1=`awk -F[-r] {print $NF} /tmp/xentop_1 |awk BEGIN{sum=0}{sum+=$9}END{print sum}`
RX1=`awk -F[-r] {print $NF} /tmp/xentop_1 |awk BEGIN{sum=0}{sum+=$10}END{print sum}`
VDB_RD1=`awk -F[-r] {print $NF} /tmp/xentop_1 |awk BEGIN{sum=0}{sum+=$13}END{print sum}`
VDB_WR1=`awk -F[-r] {print $NF} /tmp/xentop_1 |awk BEGIN{sum=0}{sum+=$14}END{print sum}`
sleep 1
/usr/sbin/xentop -i1 -d1 -b -f |grep -v VBD_WR >/tmp/xentop_2
TX2=`awk -F[-r] {print $NF} /tmp/xentop_2 |awk BEGIN{sum=0}{sum+=$9}END{print sum}`
RX2=`awk -F[-r] {print $NF} /tmp/xentop_2 |awk BEGIN{sum=0}{sum+=$10}END{print sum}`
VDB_RD2=`awk -F[-r] {print $NF} /tmp/xentop_2 |awk BEGIN{sum=0}{sum+=$13}END{print sum}`
VDB_WR2=`awk -F[-r] {print $NF} /tmp/xentop_2 |awk BEGIN{sum=0}{sum+=$14}END{print sum}`
date1=`stat /tmp/xentop_1 |grep Modify |awk {print $2,$3}`
date2=`stat /tmp/xentop_2 |grep Modify |awk {print $2,$3}`
start=`date +%s -d “$date1″`
end=`date +%s -d “$date2″`
let sleep=end-start
#VM Performance Output
awk {print $1} /tmp/xentop_1 >/tmp/vmname_
awk -F[-r] {print $NF} /tmp/xentop_1 >/tmp/xentop_11
awk -F[-r] {print $NF} /tmp/xentop_2 >/tmp/xentop_22
awk -F[-r] {print $NF} /tmp/xentopcpu_ |sed 1,/NAME/d |awk {print $2} >/tmp/xentop_33
printf “\n%50s %6s %12s %12s %6s %6s\n” NAME CPU NETin(KB) NETout(KB) IOr IOw
paste /tmp/vmname_ /tmp/xentop_11 /tmp/xentop_22 /tmp/xentop_33 |awk -v n=$sleep {printf “%50s %6s %12d %12d %6d %6d\n”,$1,$NF,($27-$10)/n,($28-$11)/n,($31-$14)/n,($32-$15)/n} |sort -k”$SORT” -rn |head -“$NUM”
}
while true;
do
get_performance
done