aboutsummaryrefslogtreecommitdiff
path: root/doc/examples/tcp_range_script
diff options
context:
space:
mode:
Diffstat (limited to 'doc/examples/tcp_range_script')
-rwxr-xr-xdoc/examples/tcp_range_script109
1 files changed, 109 insertions, 0 deletions
diff --git a/doc/examples/tcp_range_script b/doc/examples/tcp_range_script
new file mode 100755
index 0000000..37eb8b6
--- /dev/null
+++ b/doc/examples/tcp_range_script
@@ -0,0 +1,109 @@
+#!/bin/sh
+#
+# stream_range
+#
+# generate a whole lot of numbers from netperf to see the effects
+# of send size on thruput
+#
+
+#
+# usage : tcp_stream_range hostname [CPU]
+#
+
+if [ $# -gt 2 ]; then
+ echo "try again, correctly -> tcp_stream_range hostname [CPU]"
+ exit 1
+fi
+
+if [ $# -eq 0 ]; then
+ echo "try again, correctly -> tcp_stream_range hostname [CPU]"
+ exit 1
+fi
+
+# if there are two parms, parm one it the hostname and parm two will
+# be a CPU indicator. actually, anything as a second parm will cause
+# the CPU to be measured, but we will "advertise" it should be "CPU"
+
+if [ $# -eq 2 ]; then
+ REM_HOST=$1
+ LOC_CPU="-c"
+ REM_CPU="-C"
+fi
+
+if [ $# -eq 1 ]; then
+ REM_HOST=$1
+fi
+
+# at what port will netserver be waiting? If you decide to run
+# netserver at a differnet port than the default of 12865, then set
+# the value of PORT apropriately
+#PORT="-p some_other_portnum"
+PORT=""
+
+# where is netperf, and are there any "constant" options such as
+# the netserver port number
+#NETHOME=/usr/etc/net_perf
+NETHOME="."
+NETPERF=$NETHOME/netperf $PORT
+
+# How accurate we want the estimate of performance:
+# maximum and minimum test iterations (-i)
+# confidence level (99 or 95) and interval (percent)
+STATS_STUFF="-i 10,2 -I 99,3"
+
+#
+# some stuff for the arithmetic
+#
+# we start at start, and then multiply by MULT and add ADD. by changing
+# these numbers, we can double each time, or increase by a fixed
+# amount, or go up by 4x, whatever we like...
+#
+START=1
+
+END=65536
+
+MULT=4
+
+ADD=0
+
+# If we are measuring CPU utilization, then we can save beaucoup
+# time by saving the results of the CPU calibration and passing
+# them in during the real tests. So, we execute the new CPU "tests"
+# of netperf and put the values into shell vars.
+case $LOC_CPU in
+\-c) LOC_RATE=`$NETPERF -t LOC_CPU`;;
+*) LOC_RATE=""
+esac
+
+case $REM_CPU in
+\-C) REM_RATE=`$NETPERF -t REM_CPU -H $REM_HOST`;;
+*) REM_RATE=""
+esac
+
+TIME="60"
+
+#
+# the maximum socket buffer size is system dependent. for the
+# "cannonical" tests we use 32KB, but this can be altered
+#
+SOCKET_SIZE="-s 32768 -S 32768"
+
+MESSAGE=$START
+while [ $MESSAGE -le $END ]; do
+ echo
+ echo ------------------------------------
+ echo Testing with the following command line:
+ echo $NETPERF -l $TIME -H $REM_HOST -t TCP_STREAM\
+ $LOC_CPU $LOC_RATE $REM_CPU $REM_RATE $STATS_STUFF --\
+ -m $MESSAGE $SOCKET_SIZE
+ echo
+ $NETPERF -l $TIME -H $REM_HOST -t TCP_STREAM\
+ $LOC_CPU $LOC_RATE $REM_CPU $REM_RATE $STATS_STUFF --\
+ -m $MESSAGE $SOCKET_SIZE
+
+ MESSAGE=`expr $MESSAGE + $ADD`
+ MESSAGE=`expr $MESSAGE \* $MULT`
+
+done
+echo
+