1#!/bin/sh 2# 3# stream_range 4# 5# generate a whole lot of numbers from netperf to see the effects 6# of send size on thruput 7# 8 9# 10# usage : tcp_stream_range hostname [CPU] 11# 12 13if [ $# -gt 2 ]; then 14 echo "try again, correctly -> tcp_stream_range hostname [CPU]" 15 exit 1 16fi 17 18if [ $# -eq 0 ]; then 19 echo "try again, correctly -> tcp_stream_range hostname [CPU]" 20 exit 1 21fi 22 23# if there are two parms, parm one it the hostname and parm two will 24# be a CPU indicator. actually, anything as a second parm will cause 25# the CPU to be measured, but we will "advertise" it should be "CPU" 26 27if [ $# -eq 2 ]; then 28 REM_HOST=$1 29 LOC_CPU="-c" 30 REM_CPU="-C" 31fi 32 33if [ $# -eq 1 ]; then 34 REM_HOST=$1 35fi 36 37# at what port will netserver be waiting? If you decide to run 38# netserver at a differnet port than the default of 12865, then set 39# the value of PORT apropriately 40#PORT="-p some_other_portnum" 41PORT="" 42 43# where is netperf, and are there any "constant" options such as 44# the netserver port number 45#NETHOME=/usr/etc/net_perf 46NETHOME="." 47NETPERF=$NETHOME/netperf $PORT 48 49# How accurate we want the estimate of performance: 50# maximum and minimum test iterations (-i) 51# confidence level (99 or 95) and interval (percent) 52STATS_STUFF="-i 10,2 -I 99,3" 53 54# 55# some stuff for the arithmetic 56# 57# we start at start, and then multiply by MULT and add ADD. by changing 58# these numbers, we can double each time, or increase by a fixed 59# amount, or go up by 4x, whatever we like... 60# 61START=1 62 63END=65536 64 65MULT=4 66 67ADD=0 68 69# If we are measuring CPU utilization, then we can save beaucoup 70# time by saving the results of the CPU calibration and passing 71# them in during the real tests. So, we execute the new CPU "tests" 72# of netperf and put the values into shell vars. 73case $LOC_CPU in 74\-c) LOC_RATE=`$NETPERF -t LOC_CPU`;; 75*) LOC_RATE="" 76esac 77 78case $REM_CPU in 79\-C) REM_RATE=`$NETPERF -t REM_CPU -H $REM_HOST`;; 80*) REM_RATE="" 81esac 82 83TIME="60" 84 85# 86# the maximum socket buffer size is system dependent. for the 87# "cannonical" tests we use 32KB, but this can be altered 88# 89SOCKET_SIZE="-s 32768 -S 32768" 90 91MESSAGE=$START 92while [ $MESSAGE -le $END ]; do 93 echo 94 echo ------------------------------------ 95 echo Testing with the following command line: 96 echo $NETPERF -l $TIME -H $REM_HOST -t TCP_STREAM\ 97 $LOC_CPU $LOC_RATE $REM_CPU $REM_RATE $STATS_STUFF --\ 98 -m $MESSAGE $SOCKET_SIZE 99 echo 100 $NETPERF -l $TIME -H $REM_HOST -t TCP_STREAM\ 101 $LOC_CPU $LOC_RATE $REM_CPU $REM_RATE $STATS_STUFF --\ 102 -m $MESSAGE $SOCKET_SIZE 103 104 MESSAGE=`expr $MESSAGE + $ADD` 105 MESSAGE=`expr $MESSAGE \* $MULT` 106 107done 108echo 109 110