
- Fix crash when hitting logger.warning in exec_pair - Fix SPT bugs: - iperf sometimes not installed for HW to HW test - iperf_server_stop broken in several ways - glance download script has wrong filename - SPT_parser traces on empty glance output - Print to stdout on non-0 exit to tell about unclean exit to user - Reorder SPT copy-paste line once more Change-Id: I7a37b5fce5bc620cc9e2db8d232180c215cd3782
156 lines
5.7 KiB
Bash
Executable File
156 lines
5.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
results=${1:-"/tmp/timmy/info"}
|
|
glance_create="glance-1-image-create.sh"
|
|
glance_download="glance-2-image-download.sh"
|
|
cinder_volume="cinder-VM-volume-write.sh"
|
|
iperf_vm="network-VM-to-VM-iperf-tests.sh"
|
|
iperf_host="iperf-client.sh"
|
|
res_glance_create=`find $results -name $glance_create`
|
|
res_glance_download=`find $results -name $glance_download`
|
|
res_cinder=`find $results -name $cinder_volume`
|
|
res_iperf_vm=`find $results -name $iperf_vm`
|
|
res_iperf_host="$(find $results -name "${iperf_host}*")"
|
|
res_iperf_node_dir="$(find $results -name "client" -type d)"
|
|
[ -n "$res_iperf_node_dir" ] && res_iperf_node="$(ls $res_iperf_node_dir)" || res_iperf_node=""
|
|
|
|
function print_result() {
|
|
[ -n "$2" ] && printf "$2" || printf "n/a"
|
|
echo -e "\t<-- $1"
|
|
}
|
|
|
|
function a() {
|
|
[ -n "$1" ] && printf "$1\t" || printf "n/a\t"
|
|
}
|
|
|
|
function b() {
|
|
word=`echo $1 | grep -o '[a-zA-Z/]\+'`
|
|
number=`echo $1 | grep -o '[0-9.]\+'`
|
|
python -c '
|
|
import sys
|
|
word = sys.argv[1]
|
|
number = sys.argv[2]
|
|
if word == "Gbits/sec":
|
|
sys.stdout.write(str(int(float(number)*1000000000)))
|
|
elif word == "Mbits/sec":
|
|
sys.stdout.write(str(int(float(number)*1000000)))
|
|
elif word == "Kbits/sec":
|
|
sys.stdout.write(str(int(float(number)*1000)))
|
|
elif word == "bits/sec":
|
|
sys.stdout.write(str(int(number)))
|
|
' $word $number 2> /dev/null
|
|
}
|
|
|
|
function c() {
|
|
echo $1 | python -c 'import sys; print(float(sys.stdin.read())/1000000000)' 2> /dev/null
|
|
}
|
|
|
|
function d() {
|
|
word=`echo $1 | grep -o '[a-zA-Z/]\+'`
|
|
number=`echo $1 | grep -o '[0-9.]\+'`
|
|
python -c '
|
|
import sys
|
|
word = sys.argv[1]
|
|
number = sys.argv[2]
|
|
if word == "GB/s":
|
|
sys.stdout.write(str(int(float(number)*1000)))
|
|
elif word == "MB/s":
|
|
sys.stdout.write(str(float(number)))
|
|
elif word == "kB/s":
|
|
sys.stdout.write(str(int(float(number)/1000)))
|
|
' $word $number 2> /dev/null
|
|
}
|
|
|
|
if [ -n "$res_glance_create" ]
|
|
then
|
|
res_gc=`head -n 4 $res_glance_create | grep '^[0-9.]\+$' | \
|
|
python -c 'import sys; print("%.2fMB/s" % (4000/float(sys.stdin.read(),)))' 2> /dev/null`
|
|
fi
|
|
print_result "Glance upload" $res_gc
|
|
|
|
if [ -n "$res_glance_download" ]
|
|
then
|
|
res_gd=`head -n 1 $res_glance_download | grep '^[0-9.]\+$' | \
|
|
python -c 'import sys; print("%.2fMB/s" % (4000/float(sys.stdin.read(),)))' 2> /dev/null`
|
|
fi
|
|
print_result "Glance download" $res_gd
|
|
|
|
if [ -n "$res_cinder" ]
|
|
then
|
|
res_4k=`grep 'DD_TEST_1' $res_cinder | grep copied | rev | awk '{print $1$2}' | rev`
|
|
res_1m=`grep 'DD_TEST_2' $res_cinder | grep copied | rev | awk '{print $1$2}' | rev`
|
|
res_1g=`grep 'DD_TEST_3' $res_cinder | grep copied | rev | awk '{print $1$2}' | rev`
|
|
fi
|
|
print_result "Block Storage Write 4k" $res_4k
|
|
print_result "Block Storage Write 1M" $res_1m
|
|
print_result "Block Storage Write 1G" $res_1g
|
|
|
|
[ -n "$res_iperf_node" ] && nnum="$(wc -l <<< "$res_iperf_node")" && print_result "Number of nodes (during iperf HW to HW tests)" $nnum
|
|
|
|
if [ -n "$res_iperf_host" ]
|
|
then
|
|
res_t1=""
|
|
res_t10=""
|
|
for i in $res_iperf_host
|
|
do
|
|
res_t1="$(echo "$res_t1"; b $(head -n 7 $i | tail -n 1 | grep '^\[.*sec' | rev | awk '{print $1$2}' | rev | sed 's/ //g'))"
|
|
res_t1="$(echo "$res_t1" | grep -v '^$' | sort -n | tail -n 1)"
|
|
res_t10="$(echo "$res_t10"; b $(head -n 33 $i | tail -n 1 | grep '^\[SUM.*sec' | rev | awk '{print $1$2}' | rev | sed 's/ //g'))"
|
|
res_t10="$(echo "$res_t10" | grep -v '^$' | sort -n | tail -n 1)"
|
|
done
|
|
fi
|
|
res_t1=`echo "$res_t1" | python -c 'import sys; print(float(sys.stdin.read())/1000000000)' 2> /dev/null`
|
|
res_t10=`echo "$res_t10" | python -c 'import sys; print(float(sys.stdin.read())/1000000000)' 2> /dev/null`
|
|
print_result "HW to HW (best)" $res_t1
|
|
print_result "HW to HW (best) - 10 Threads" $res_t10
|
|
|
|
if [ -n "$res_iperf_host" ]
|
|
then
|
|
res_mt1=""
|
|
res_mt10=""
|
|
for i in $res_iperf_host
|
|
do
|
|
res_mt1="$(echo "$res_mt1"; b $(head -n 7 $i | tail -n 1 | grep '^\[.*sec' | rev | awk '{print $1$2}' | rev | sed 's/ //g'))"
|
|
res_mt1="$(echo "$res_mt1" | grep -v '^$' | sort -n | head -n 1)"
|
|
res_mt10="$(echo "$res_mt10"; b $(head -n 33 $i | tail -n 1 | grep '^\[SUM.*sec' | rev | awk '{print $1$2}' | rev | sed 's/ //g'))"
|
|
res_mt10="$(echo "$res_mt10" | grep -v '^$' | sort -n | head -n 1)"
|
|
done
|
|
fi
|
|
res_mt1=`echo "$res_mt1" | python -c 'import sys; print(float(sys.stdin.read())/1000000000)' 2> /dev/null`
|
|
res_mt10=`echo "$res_mt10" | python -c 'import sys; print(float(sys.stdin.read())/1000000000)' 2> /dev/null`
|
|
print_result "HW to HW (worst)" $res_mt1
|
|
print_result "HW to HW (worst) - 10 Threads" $res_mt10
|
|
|
|
if [ -n "$res_iperf_vm" ]
|
|
then
|
|
res1=`head -n 8 $res_iperf_vm | tail -n 1 | grep '^\[.*sec' | rev | awk '{print $1$2}' | rev | sed 's/ //g'`
|
|
res2=`head -n 17 $res_iperf_vm | tail -n 1 | grep '^\[.*sec' | rev | awk '{print $1$2}' | rev | sed 's/ //g'`
|
|
res3=`head -n 44 $res_iperf_vm | tail -n 1 | grep '^\[SUM.*sec' | rev | awk '{print $1$2}' | rev | sed 's/ //g'`
|
|
res4=`head -n 52 $res_iperf_vm | tail -n 1 | grep '^\[.*sec' | rev | awk '{print $1$2}' | rev | sed 's/ //g'`
|
|
res5=`head -n 61 $res_iperf_vm | tail -n 1 | grep '^\[.*sec' | rev | awk '{print $1$2}' | rev | sed 's/ //g'`
|
|
fi
|
|
print_result "VM to VM - VMs on same node - via Private IP - 1 thread" $res1
|
|
print_result "VM to VM - VMs on different HW nodes - via Private IP - 1 thread" $res2
|
|
print_result "VM to VM - VMs on different HW nodes - via Private IP - MILTI 10 thread" $res3
|
|
print_result "VM to VM - via Floating IP and VMs are on different nodes - 1 thread" $res4
|
|
print_result "VM to VM - diff nodes, VMs connected to separate networks connected by vRouter - via Private IP - 1 thread" $res5
|
|
|
|
|
|
echo "--------------------------"
|
|
a `d $res_gc`
|
|
a `d $res_gd`
|
|
a `d $res_4k`
|
|
a `d $res_1m`
|
|
a `d $res_1g`
|
|
a $nnum
|
|
a $res_t1
|
|
a $res_t10
|
|
a $res_mt1
|
|
a $res_mt10
|
|
a $(c `b $res1`)
|
|
a $(c `b $res2`)
|
|
a $(c `b $res3`)
|
|
a $(c `b $res4`)
|
|
a $(c `b $res5`)
|
|
echo
|