#set -x
# edit and add to this array as necessary
# the hosts you will use should be contiguous
# starting at index zero
remote_hosts[0]=192.168.2.3
remote_hosts[1]=192.168.3.5
remote_hosts[2]=192.168.4.6
remote_hosts[3]=192.168.5.7
remote_hosts[4]=192.168.2.5
remote_hosts[5]=192.168.3.3
remote_hosts[6]=192.168.4.7
remote_hosts[7]=192.168.5.6
remote_hosts[8]=192.168.2.6
remote_hosts[9]=192.168.3.7
remote_hosts[10]=192.168.4.3
remote_hosts[11]=192.168.5.5
remote_hosts[12]=192.168.2.7
remote_hosts[13]=192.168.3.6
remote_hosts[14]=192.168.4.5
remote_hosts[15]=192.168.5.3
# this should always be less than or equal to the
# number of valid hosts in the array above
num_cli=16
# this will be the length of each individual test
# iteration
length=30
# this will be the settings for confidence intervals
# you can use a smaller number of iterations but
# to ensure that everyone is running at the same time
# the min and max iterations MUST be the same
confidence="-i 30,30"
# the different number of concurrent sessions to be run
# if you do not start with one concurrent session the
# test headers may not be where one wants them and you
# may need to edit the output to hoist the test header
# up above the first result
concurrent_sessions="1 4 8 16 32 64"
# the socket buffer sizes - you may need to tweak
# some system settings to allow 1M socket buffers
socket_sizes=" -s 1M -S 1M"
# the burst sizes in the aggregate request/response tests
#burst_sizes="0 1 4 16 64 256 1024"
burst_sizes="0 1 4 16"
# this ensures the test header of at least one instance
# is displayed
HDR="-P 1"
# -O means "human" -o means "csv" and -k means "keyval"
# "all" means emit everything it knows to emit. omit "all"
# and what is emitted will depend on the test. can customize
# with direct output selection or specifying a file with
# output selectors in it
CSV="-o all"
# should tests outbound relative to this system be run?
DO_STREAM=0
# should tests inbound relative to this system be run?
DO_MAERTS=0
# should same connection bidirectional tests be run?
DO_BIDIR=1
# should aggreagte single-byte request/response be run?
# this can be used to try to get a maximum PPS figure
DO_RRAGG=1
# here you should echo-out some things about the test
# particularly those things that will not be automagically
# captured by netperf.
echo interrupts spread wherever irqbalanced put them
echo 4xAD386A in DL785 G5 SLES11B6, HP/vendor drivers
echo four dl585 G5 clients rh5.2, each with two AD386A
# and here we go
if [ $DO_STREAM -eq 1 ]; then
echo TCP_STREAM
for i in $concurrent_sessions; do
j=0;
NETUUID=`netperf -t uuid`;
echo $i concurrent streams id $NETUUID;
while [ $j -lt $i ]; do
client=`expr $j % $num_cli` ;
netperf $HDR -t omni -c -C -H ${remote_hosts[$client]} -l $length $confidence -- $CSV -H ${remote_hosts[$client]} $socket_sizes -m 64K -u $NETUUID & HDR="-P 0";
j=`expr $j + 1`;
done;
wait;
done
fi
#
if [ $DO_MAERTS -eq 1 ]; then
echo TCP_MAERTS
for i in $concurrent_sessions; do
j=0;
NETUUID=`netperf -t uuid`;
echo $i concurrent streams id $NETUUID;
while [ $j -lt $i ]; do
client=`expr $j % $num_cli` ;
netperf $HDR -t omni -c -C -H ${remote_hosts[$client]} -l $length $confidence -- $CSV -H ${remote_hosts[$client]} $socket_sizes -M ,64K -u $NETUUID & HDR="-P 0";
j=`expr $j + 1`;
done;
wait;
done
fi
if [ $DO_BIDIR -eq 1 ]; then
echo bidir TCP_RR MEGABITS
HDR="-P 1"
for i in $concurrent_sessions;
do j=0;
NETUUID=`netperf -t uuid`;
echo $i concurrent streams id $NETUUID;
while [ $j -lt $i ]; do
client=`expr $j % $num_cli` ;
netperf $HDR -t omni -f m -c -C -H ${remote_hosts[$client]} -l $length $confidence -- $CSV -H ${remote_hosts[$client]} -s 1M -S 1M -r 64K -b 12 -u $NETUUID & HDR="-P 0";
j=`expr $j + 1`;
done;
wait;
done
fi
if [ $DO_RRAGG -eq 1 ]; then
echo TCP_RR aggregates
HDR="-P 1"
for i in $concurrent_sessions; do
NETUUID=`netperf -t uuid`;
echo $i concurrent streams id $NETUUID;
for b in $burst_sizes; do
echo burst of $b;
j=0;
while [ $j -lt $i ]; do
client=`expr $j % $num_cli` ;
netperf $HDR -t omni -f x -c -C -H ${remote_hosts[$client]} -l $length $confidence -- $CSV -H ${remote_hosts[$client]} -r 1 -b $b -D -u $NETUUID & HDR="-P 0";
j=`expr $j + 1`;
done;
wait;
done;
done
fi
cat /proc/meminfo