Created
November 1, 2015 18:00
-
-
Save therandomsecurityguy/5a3b060fd6879315b721 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# This is an example script for using netperf. Feel free to modify it | |
# as necessary, but I would suggest that you copy this one first. | |
# This script performs various UDP unidirectional stream tests. | |
# usage: ./netperf_udp_stream.sh [machine A's IP] [CPU] [-Tx,x] > filename.txt | |
# | |
if [ $# -gt 4 ]; then | |
echo "try again, correctly -> udp_stream_script hostname [CPU] [-Tx,x] [I]" | |
exit 1 | |
fi | |
if [ $# -eq 0 ]; then | |
echo "try again, correctly -> udp_stream_script hostname [CPU]" | |
exit 1 | |
fi | |
# where the programs are | |
NETHOME=/usr/local/bin | |
#NETHOME="/opt/netperf" | |
#NETHOME="." | |
# 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="" | |
# The test length in seconds | |
TEST_TIME=5 | |
# 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,10" | |
# The socket sizes that we will be testing. This should be a list of | |
# integers separated by spaces | |
SOCKET_SIZES="32768 4M" | |
# The send sizes that we will be using. Using send sizes that result | |
# in UDP packets which are larger than link size can be a bad thing to do. | |
# for FDDI, you can tack-on a 4096 data point | |
SEND_SIZES="64 1024 1472" | |
# 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 4 ]; then | |
REM_HOST=$1 | |
LOC_CPU="" | |
REM_CPU="" | |
AFFINITY="" | |
STREAM="UDP_STREAM" | |
case $2 in | |
\CPU) LOC_CPU="-c";REM_CPU="-C";; | |
\I) STREAM="UDP_MAERTS";; | |
*) AFFINITY=$2 | |
esac | |
case $3 in | |
\CPU) LOC_CPU="-c";REM_CPU="-C";; | |
\I) STREAM="UDP_MAERTS";; | |
*) AFFINITY=$3 | |
esac | |
case $4 in | |
\CPU) LOC_CPU="-c";REM_CPU="-C";; | |
\I) STREAM="UDP_MAERTS";; | |
*) AFFINITY=$4 | |
esac | |
fi | |
if [ $# -eq 3 ]; then | |
REM_HOST=$1 | |
LOC_CPU="" | |
REM_CPU="" | |
AFFINITY="" | |
STREAM="UDP_STREAM" | |
case $2 in | |
\CPU) LOC_CPU="-c";REM_CPU="-C";; | |
\I) STREAM="UDP_MAERTS";; | |
*) AFFINITY=$2 | |
esac | |
case $3 in | |
\CPU) LOC_CPU="-c";REM_CPU="-C";; | |
\I) STREAM="UDP_MAERTS";; | |
*) AFFINITY=$3 | |
esac | |
fi | |
if [ $# -eq 2 ]; then | |
REM_HOST=$1 | |
LOC_CPU="" | |
REM_CPU="" | |
AFFINITY="" | |
STREAM="UDP_STREAM" | |
case $2 in | |
\CPU) LOC_CPU="-c";REM_CPU="-C";; | |
\I) STREAM="UDP_MAERTS";; | |
*) AFFINITY=$2 | |
esac | |
fi | |
if [ $# -eq 1 ]; then | |
REM_HOST=$1 | |
LOC_CPU="" | |
REM_CPU="" | |
AFFINITY="" | |
STREAM="UDP_STREAM" | |
fi | |
# 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=`$NETHOME/netperf $PORT -t LOC_CPU`;; | |
*) LOC_RATE="" | |
esac | |
case $REM_CPU in | |
\-C) REM_RATE=`$NETHOME/netperf $PORT -t REM_CPU -H $REM_HOST`;; | |
*) REM_RATE="" | |
esac | |
# This will tell netperf that headers are not to be displayed | |
NO_HDR="-P 0" | |
for SOCKET_SIZE in $SOCKET_SIZES | |
do | |
for SEND_SIZE in $SEND_SIZES | |
do | |
echo | |
echo ------------------------------------------------------ | |
echo Testing with the following command line: | |
echo $NETHOME/netperf $PORT -l $TEST_TIME -H $REM_HOST $STATS_STUFF \ | |
$LOC_CPU $LOC_RATE $REM_CPU $REM_RATE -t $STREAM -- \ | |
-m $SEND_SIZE -s $SOCKET_SIZE -S $SOCKET_SIZE $AFFINITY | |
$NETHOME/netperf $PORT -l $TEST_TIME -H $REM_HOST $STATS_STUFF \ | |
$LOC_CPU $LOC_RATE $REM_CPU $REM_RATE -t $STREAM -- \ | |
-m $SEND_SIZE -s $SOCKET_SIZE -S $SOCKET_SIZE $AFFINITY | |
done | |
done | |
echo |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment