登陸伺服器,執行指令碼/opt/tools/real_time_status.sh:(該指令碼的相關資料都是從xentop命令中提取的)
#!/bin/bash# Program:# Real-time Performance# History:#2014/09/29caishunzhi 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_1TX1=`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_2TX2=`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 Outputawk '{print $1}' /tmp/xentop_1 >/tmp/vmname_awk -F'[-r]' '{print $NF}' /tmp/xentop_1 >/tmp/xentop_11awk -F'[-r]' '{print $NF}' /tmp/xentop_2 >/tmp/xentop_22awk -F'[-r]' '{print $NF}' /tmp/xentopcpu_ |sed '1,/NAME/d' |awk '{print $2}' >/tmp/xentop_33printf "\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_performancedone
[root@xen-host01 ~]# sh /opt/tools/real_time_status.sh
預設以流出流量(第四列)排序,顯示前6名。
如果要以其它列排序,直接在指令碼後接列號;如果要顯示更多的虛擬機器,在列號後接要顯示的數量。
如下命令以IO讀請求數排序(第五列),顯示前10名:
[root@xen-host01 ~]# sh /opt/tools/real_time_status.sh 5 10
註:
預設沒有顯示虛擬機器的cpu使用率,如果要顯示,請編輯指令碼,將如下兩行的注釋(#)去掉,儲存退出,再執行指令碼即可。
xentop官方使用說明:
How to Use the XenServer Xentop Utility