Author: solomax
Date: Thu Feb 7 16:26:16 2013
New Revision: 1443593
URL: http://svn.apache.org/viewvc?rev=1443593&view=rev
Log:
[OPENMEETINGS-306] Script for testing network parameters is added
Added:
openmeetings/trunk/singlewebapp/WebContent/red5/network_test.sh (with
props)
Added: openmeetings/trunk/singlewebapp/WebContent/red5/network_test.sh
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/red5/network_test.sh?rev=1443593&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/WebContent/red5/network_test.sh (added)
+++ openmeetings/trunk/singlewebapp/WebContent/red5/network_test.sh Thu Feb 7
16:26:16 2013
@@ -0,0 +1,144 @@
+#!/bin/bash
+
+LOCAL_HOST=$1
+SSH_LOGIN=$2
+TESTING_HOST=$3
+
+if [ -z "$3" ];then
+ echo "Usage: $0 LOCAL_HOST_IP REMOTE_SSH_LOGIN REMOTE_HOST_IP"
+ echo "Script requare installed 'iperf' on both local and remote hosts."
+ echo "Also need setting up ssh login without requiring a password. Use for
this purpose ssl certificates."
+ exit 0;
+fi
+
+TEST_LOCAL_IPERF=`iperf 2>&1 | grep "Usage: iperf" |wc -l`
+if [ "1" != "$TEST_LOCAL_IPERF" ];then
+ echo "Script requare installed 'iperf' on local host."
+ exit 0;
+fi
+
+TEST_REMOTE_IPERF=`ssh $SSH_LOGIN@$TESTING_HOST "iperf 2>&1 | grep \"Usage:
iperf\" |wc -l"`
+if [ "1" != "$TEST_REMOTE_IPERF" ];then
+ echo "Script requare installed 'iperf' on remote host."
+ exit 0;
+fi
+
+test_jitter_with_ping (){
+## $1 - size of packets in bites
+## $2 - count of send packets
+
+COUNT_PACKETS=1000
+if [ -z "$1" ]; then
+ ping -c 1000 -f -s $1 $TESTING_HOST 2>&1 >${1}b.out.txt
+else
+ ping -c $2 -f -s $1 $TESTING_HOST 2>&1 >${1}b.out.txt
+ COUNT_PACKETS=$2
+fi
+
+MIN=`grep "rtt min" ./${1}b.out.txt | cut -d " " -f4 | cut -d "/" -f1 | cut -d
"." -f1`
+AVG=`grep "rtt min" ./${1}b.out.txt | cut -d " " -f4 | cut -d "/" -f2 | cut -d
"." -f1`
+MAX=`grep "rtt min" ./${1}b.out.txt | cut -d " " -f4 | cut -d "/" -f3 | cut -d
"." -f1`
+
+let "JITTER=($MAX-$AVG)-($AVG-$MIN)"
+if [ "$JITTER" -lt "0" ];then
+ let "JITTER=-$JITTER"
+fi
+echo "Jitter = $JITTER for $COUNT_PACKETS packets with size $1 bites (ping)"
+echo "Max latency is $MAX"
+if [ "$AVG" != "0" ]; then
+ let "JITTERPS=$JITTER*100/$AVG"
+ echo "Jitter = $JITTERPS % from $AVG ms"
+fi
+
+}
+
+test_opened_ports_with_iperf (){
+## Test opened ports
+echo "Start testing opened ports"
+echo "========================================"
+PORTS=$1 #"5080 1935 8088"
+AVAIL_PORTS=""
+rm server_port_log.txt
+for i in $PORTS; do
+ #echo "ssh $SSH_LOGIN@$TESTING_HOST \"iperf -s -p $i\""
+ ssh $SSH_LOGIN@$TESTING_HOST "iperf -s -p $i" >>server_port_log.txt 2>&1 &
+ sleep 2
+ #echo "telnet -e q $TESTING_HOST $i <telnet_commands.txt"
+ TELNET_OUT=`echo -e "q\nquit"|telnet -e q $TESTING_HOST $i`
+ #echo "ssh $SSH_LOGIN@$TESTING_HOST \"ps -C iperf|cut -d \" \" -f1 | xargs
kill -9\""
+ ssh $SSH_LOGIN@$TESTING_HOST "ps -C iperf|cut -d \" \" -f1 | xargs kill -9"
>>server_port_log.txt 2>&1 &
+ PORT_IS_AVAILABLE=`echo "$TELNET_OUT" | grep "Connected to"`
+ if [ "$PORT_IS_AVAILABLE" != "" ];then
+ echo "Port $i available"
+ AVAIL_PORTS="$AVAIL_PORTS $i"
+ else
+ echo "Port $i not available"
+ fi
+ sleep 2
+done
+
+}
+
+
+test_bandwidth_with_iperf (){
+## Test bandwidth of server
+echo "Start testing bandwidth of server"
+echo "========================================"
+ PORT=$1
+ TIME_TO_TEST=30
+ NUM_THREADS=10
+ REPORT_INTERVAL=5
+ #Download test
+ echo "Start outbound test"
+ #setup server
+ #echo "Starting server..."
+ ssh $SSH_LOGIN@$TESTING_HOST "iperf -s -p $PORT" >server_log.txt 2>&1 &
+ #wait when server started
+ sleep 2
+ #start test
+ #echo "Start test"
+ iperf -c $TESTING_HOST -p $PORT -i $REPORT_INTERVAL -P $NUM_THREADS -t
$TIME_TO_TEST | tee client_log.txt | grep "SUM"
+ #stop server
+ echo "Stop server"
+ ssh $SSH_LOGIN@$TESTING_HOST "ps -C iperf|cut -d \" \" -f1 | xargs kill -9"
>>server_log.txt 2>&1 &
+ echo "End outbound test"
+ sleep 2
+ echo
+ #Upload test
+ #Comment: This we can use any port for testing, I use 12100
+ PORT=12100
+ echo "Start inbound test"
+ #setup server
+ #echo "Starting server..."
+ iperf -s -p $PORT >local_server_log.txt 2>&1 &
+ #wait when server started
+ sleep 2
+ #start test
+ #echo "Start test"
+ ssh $SSH_LOGIN@$TESTING_HOST "iperf -c $LOCAL_HOST -p $PORT -i
$REPORT_INTERVAL -P $NUM_THREADS -t $TIME_TO_TEST" | tee remote_client_log.txt
| grep "SUM"
+ #stop server
+ echo "Stop server"
+ ps -C iperf | cut -d " " -f1 | xargs kill -9 >local_server_log.txt 2>&1 &
+ echo "End inbound test"
+}
+
+echo "Start testing latency and jitter"
+echo "========================================"
+test_jitter_with_ping 1000 100
+test_jitter_with_ping 1000 1000
+test_jitter_with_ping 10000 1000
+#Hard test
+#test_jitter_with_ping 1024 100000
+echo
+
+test_opened_ports_with_iperf "5080 1935 8088"
+#echo "$AVAIL_PORTS"
+echo
+
+test_bandwidth_with_iperf 1935
+
+## generate file with random content and size 1Mb
+#dd if=/dev/urandom of=test.log bs=1k count=1024
+
+
+
Propchange: openmeetings/trunk/singlewebapp/WebContent/red5/network_test.sh
------------------------------------------------------------------------------
svn:executable = *