You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.5 KiB
109 lines
2.5 KiB
#!/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 |
|
|
|
|