# a script to run a set of single-instance netperf tests
# between two machines
# the length in seconds of each test iteration. the actual
# run time will then be somewhere between that times min
# and max iteration for confidence intervals
length=30
# unlike the aggregate script, we do not have to worry
# about everyone all running at the same time, so we can
# save some time with a lower minimum iteration count
confidence="-i 30,3"
# the CPUs to which the netperf process will be bound
# via the -T global option
netperf_CPUs="0 1 2"
# the CPUs to which the netserver process will be bound
# via the -T global option
netserver_CPUs="0 1 2"
# the host/IP to use for the control connection
control_host=192.168.0.26
# the list of host/IP addresses to actually measure over
remote_hosts="192.168.0.26 fe80::207:43ff:fe05:590a%eth0"
#reqs="128 256 512 1024"
reqs="64 128 256 512 1024 1460 2048 4096 8192"
# the burst size for bursted RR tests
bursts="0 1 2 4 8 16 32 64 128 256"
HDR="-P 1"
# -O means "human" -o means "csv" -k means "keyval"
# "all" means emit everything. otherwise, specify a
# list of output selectors directly or a filename with
# them therein. no parameter means a default set will
# be emitted based on the test type
CSV="-o all"
#CSV="-O all"
# which of the tests should we do?
DO_TCP_STREAM_AUTO=1
DO_TCP_STREAM_SOPT=1
DO_TCP_BIDIR=1
DO_TCP_RR=1
DO_TCP_CC=0
DO_TCP_BIDIR_REQ=0
DO_UDP_BIDIR_REQ=0
DO_UDP_STREAM=1
# when this is set to 0 then netperf and netserver are bound
# to the same CPU number and we do not walk through all the
# combinations. one can do this when the two systems are
# otherwise identical. when they are not, then running
# through the full matrix may be indicated
FULL_MATRIX=0
# here you should echo some things about the test and its
# environment and in particular those things not automagically
# determined by netperf
echo I NEED TO EDIT THE SCRIPT
echo interrupts CPU 0 with CPU 1 other socket CPU 2 same socket
echo ad386a in dl380 g5 2x 5160@3GHz to same
# and away we go
for data in $remote_hosts
do
if [ $DO_TCP_STREAM_AUTO -eq 1 ]
then
echo TCP_STREAM to $data autotuning
for i in $netperf_CPUs
do
if [ $FULL_MATRIX -eq 1 ]
then
set=$netserver_CPUs
else
set=$i
fi
for j in $set
do
netperf $HDR -T $i,$j -t omni -c -C -H $control_host -l $length $confidence -- $CSV -H $data -m 64K;HDR="-P 0";
done
done
fi
if [ $DO_TCP_STREAM_SOPT -eq 1 ]
then
echo TCP_STREAM to $data
HDR="-P 1"
for i in $netperf_CPUs
do
if [ $FULL_MATRIX -eq 1 ]
then
set=$netserver_CPUs
else
set=$i
fi
for j in $set
do
netperf $HDR -T $i,$j -t omni -c -C -H $control_host -l $length $confidence -- $CSV -H $data -s 1M -S 1M -m 64K;HDR="-P 0";
done
done
fi
if [ $DO_TCP_BIDIR -eq 1 ]
then
echo bidir TCP_RR MEGABITS to $data
HDR="-P 1"
for i in $netperf_CPUs
do
if [ $FULL_MATRIX -eq 1 ]
then
set=$netserver_CPUs
else
set=$i
fi
for j in $set
do
netperf $HDR -T $i,$j -t omni -f m -c -C -H $control_host -l $length $confidence -- $CSV -H $data -s 1M -S 1M -r 64K -b 12; HDR="-P 0";
done
done
fi
if [ $DO_TCP_RR -eq 1 ]
then
echo TCP_RR to $data
HDR="-P 1"
for i in $netperf_CPUs
do
if [ $FULL_MATRIX -eq 1 ]
then
set=$netserver_CPUs
else
set=$i
fi
for j in $set
do
netperf $HDR -T $i,$j -t omni -c -C -H $control_host -l $length $confidence -- $CSV -H $data -r 1; HDR="-P 0";
done
done
fi
if [ $DO_TCP_BIDIR_REQ -eq 1 ]
then
echo bidir TCP_RR MEGABITS to $data altering req/rsp size and burst
HDR="-P 1"
for i in $netperf_CPUs
do
for req in $reqs; do
for burst in $bursts; do
netperf $HDR -T $i -t omni -f m -c -C -H $control_host -l $length $confidence -- $CSV -H $data -s 1M -S 1M -r $req -b $burst -D;HDR=-"P 0";
done
done
done
fi
if [ $DO_UDP_BIDIR_REQ -eq 1 ]
then
echo bidir UDP_RR MEGABITS to $data altering req/rsp size and burst
HDR="-P 1"
for i in $netperf_CPUs
do
for req in $reqs; do
for burst in $bursts; do
netperf $HDR -T $i -t omni -f m -c -C -H $control_host -l $length $confidence -- $CSV -H $data -s 1M -S 1M -r $req -b $burst -T udp;HDR=-"P 0";
done
done
done
fi
if [ $DO_UDP_STREAM -eq 1 ]
then
echo UDP_STREAM MEGABITS to $data altering send size, no confidence intvls
confidence=" "
echo CPUs $netperf_CPUs reqs $reqs
HDR="-P 1"
for i in $netperf_CPUs
do
for req in $reqs; do
netperf $HDR -T $i -t omni -f m -c -C -H $control_host -l $length $confidence -- $CSV -H $data -s 1M -S 1M -m $req -T udp;HDR=-"P 0";
done
done
fi
done
cat /proc/meminfo
cat /proc/cpuinfo