diff options
Diffstat (limited to 'netperf-2.4.4/doc/examples/arr_script')
-rwxr-xr-x | netperf-2.4.4/doc/examples/arr_script | 386 |
1 files changed, 0 insertions, 386 deletions
diff --git a/netperf-2.4.4/doc/examples/arr_script b/netperf-2.4.4/doc/examples/arr_script deleted file mode 100755 index fbcf3f6..0000000 --- a/netperf-2.4.4/doc/examples/arr_script +++ /dev/null @@ -1,386 +0,0 @@ -# this is retained mostly for historical purposes and may not be -# up to date for contemporary netperf versions -# -# a script that can be used to measure aggregate netperf performance, -# original author is Mike Traynor. Modifications to create the -# "netperf TCP_ARR test" by rick jones -# - -init_parms() { - TEST_TIME=60 - NTEST=3 - TOLERANCE=15 - MAX_RETRIES=3 - - NETPERF="/usr/local/netperf/netperf" - NETPERF="./netperf" - - NPROC_LIST="" - RR_SIZES="" - REM_HOST_LIST="" - DEVFILELIST="" - LLA=0 - TCP=1 - UDP=0 - GPROF=0 -} - -set_default_parms() { - if [ "X$NPROC_LIST" = "X" ] - then - NPROC_LIST="1" - fi - - if [ "X$REM_HOST_LIST" = "X" ] - then - REM_HOST_LIST="127.0.0.1" - fi - - if [ "X$RR_SIZES" = "X" ] - then - RR_SIZES="1,1" - fi - - NHOSTS=`echo $REM_HOST_LIST | awk '{printf "%d",NF}'` - GPROF_RUN_TIME=`expr $TEST_TIME - 20` -} - -usage() { -more << @EOF - -$* - - USAGE: scale_script {test_options} {hostlist} - - Measure maximum system network throughput. - - The following are optional parameters: - - -t nsec : Causes each test to be run for nsec seconds. - -gprof system : Take a gprof sample during the test. system - is the name of the kernel the system was booted - with. - -n "nproclist" : One series of tests is run for each space-separated - value in nproclist. - -r "sizelist" : One series of tests is run for each space-separated - request,reply pair in sizelist. - hostlist : A space separated list of hosts to test against. - - +|-tcp : Run/Don't run TCP tests. - +|-udp : Run/Don't run UDP tests. - +|-lla : Run/Don't run LLA tests; this option also requires - the user to specify a list of network device files - using the -d option described below. - - The following option must be provided when using the -lla option - described above: - - -d "devfilelst" : Where devfilelst is a space-separated list - of network device file pairs. Each pair in - the list contains two device file names, - separated by a comma (eg. /dev/lan0,/dev/lan1), - where the device file on the left side of the - comma is for the local system and the device - file on the right side is for the remote system. - A device file pair must be specified for each - remote host which is specified. - - Examples: - - scale_script -n "8 16" -udp LGs37U1 LGs37U2 -r "1,1 100,100" - - scale_script -t 1000 -n "16" -tcp -gprof /stand/vmunix LGs37U1 LGs37U2 - - scale_script -n 4 -lla -d /dev/lan0,/dev/lan0 /dev/lan1,/dev/lan0 \\ - LGs37U1 LGs37U2 - -@EOF -} - -check_usage() { - if [ `expr $TCP + $UDP + $LLA` -eq 0 ] - then - usage $0: ERROR: Must specify a test - exit - fi - - if [ $LLA -eq 1 ] - then - NDEV=`echo $DEVFILELIST | awk '{printf "%d",NF}'` - if [ $NDEV -ne $NHOSTS ] - then - usage $0: ERROR: Number of device files does not match number of hosts - exit - fi - fi - - for HOST in $REM_HOST_LIST - do - if [ `/etc/ping $HOST 100 1 | awk '/transmitted/{print $4}'`0 -ne 10 ] - then - usage $0: ERROR: Cannot ping host: $HOST - exit - fi - done - - if [ $GPROF -eq 1 ] - then - if [ ! -r $GPROF_KERNEL ] - then - usage $0: ERROR: Cannot find system file: $GPROF_KERNEL - exit - fi - if [ $GPROF_RUN_TIME -le 800 ] - then - echo "\nWARNING: GPROF RUN TIME LESS THAN 800 SECONDS\n" - fi - fi -} - -display_headstone() { -cat << @EOF - -$TESTNAME Aggregate REQUEST/RESPONSE TEST to $REM_HOST_LIST -Local /Remote -Socket Size Request Resp. Elapsed Trans. Num. -Send Recv Size Size Time Rate Concurrent -bytes Bytes bytes bytes secs. per sec Netperfs - -@EOF -} - -display_test_banner() { -cat << @EOF -@EOF -} - -build_sap_list() { - LSAP=4 - SAPLIST="" - PROC=0 - while [ $PROC -lt $NPROCS ] - do - PROC=`expr $PROC + 1` - LSAP=`expr $LSAP + 4` - RSAP=`expr $LSAP + 2` - SAPLIST="$SAPLIST $LSAP,$RSAP" - done -} - -start_gprof() { - if [ $GPROF -eq 1 ] - then - ( kgmon -h; kgmon -r; sleep 10; kgmon -b; sleep $GPROF_RUN_TIME; kgmon -h; kgmon -p $GPROF_KERNEL; mv gmon.out gmon.out.$TEST.$NPROCS )& - fi -} - -start_1_proc_per_host() { - HOSTNUM=0 - for HOST in $REM_HOST_LIST - do - if [ "$TEST" = "HIPPI_RR" ] - then - PROCNUM=`expr $PROCNUM + 1` - SAP=`echo $SAPLIST | awk "{print \\$$PROCNUM}"` - SAP="-s $SAP" - HOSTNUM=`expr $HOSTNUM + 1` - DEVFILE=`echo $DEVFILELIST | awk "{print \\$$HOSTNUM}"` - DEVFILE="-D $DEVFILE" - fi - $NETPERF -t $TEST -l $TEST_TIME -H $HOST -P0 -v0 -- \ - $COW $DEVFILE $SAP $RR_SIZE $SEND_SIZE $SOCKET_SIZE & - done -} - -start_n_procs_per_host() { - PROC=0 - while [ $PROC -lt $1 ] - do - PROCNUM=`expr $PROC \* ${NHOSTS}` - start_1_proc_per_host & - PROC=`expr $PROC + 1` - done - wait -} - -run_1_test() { - start_n_procs_per_host $PROCS_PER_HOST |\ - awk 'BEGIN {max=0;min=99999;sum=0;n=0} \ - {sum += $1;n++;ave=sum/n} \ - $1<min {min=$1} \ - $1>max {max=$1} \ - {errl=(ave-min)/ave;errm=(max-ave)/ave;err=errl} \ - errm>errl {err=errm} \ - END {printf "Aggregate throughput: %2.2f TPS +/- %2.2f %%\n",sum,err*100}' -} - -run_test_n_times() { - RETRY=0 - TEST_COUNT=0 - while [ $TEST_COUNT -lt $1 ] - do - TEST_COUNT=`expr $TEST_COUNT + 1` - start_gprof - run_1_test > .run_test_n_file - cat .run_test_n_file - ERROR_LVL=`awk '{print int($6+0.99)}' .run_test_n_file` - if [ $ERROR_LVL -gt $TOLERANCE ] - then - RETRY=`expr $RETRY + 1` - if [ $RETRY -le $MAX_RETRIES ] - then - TEST_COUNT=`expr $TEST_COUNT - 1` - TEST_TIME=`expr $TEST_TIME \* 2` - else - echo "!!!This is an INVALID RUN of the arr_script!!!" >&2 - echo "!!!UNABLE to hit TOLERANCE of " $TOLERANCE "!!!" >&2 - echo "Please select a longer initial time and try again." >&2 - exit - fi - fi - done -} - -do_req_rr_sizes() { - for S2 in $RR_SIZES - do - RR_SIZE="-r $S2" - display_test_banner $NPROCS $TEST $S2 - run_test_n_times $NTEST > .do_series_file - TPS=`awk "int(\$6+0.99)<=$TOLERANCE {print}" .do_series_file |\ - awk 'BEGIN {sum=0;n=1} \ - sum>0 {n++} \ - {sum+=$3} \ - END {printf "%2.2f\n",(sum)/(n)}'` - SOCK_SEND=`echo $SOCKET_SIZE | awk '{print $2}'` - SOCK_RECV=`echo $SOCKET_SIZE | awk '{print $4}'` - REQ_SIZE=`echo $S2 | awk -F"," '{print $1}'` - RSP_SIZE=`echo $S2 | awk -F"," '{print $2}'` - echo $SOCK_SEND $SOCK_RECV $REQ_SIZE $RSP_SIZE $TEST_TIME $TPS $PROCS |\ - awk '{printf "%5d %5d %5d %5d %5d %8.2f %5d",$1,$2,$3,$4,$5,$6,$7}' - done -} - -tcp_test() { - #Run the TCP RR tests - TEST="TCP_RR" - SEND_SIZE="" - SOCKET_SIZE="-s 8192 -S 8192" - COW="-V" - do_req_rr_sizes - echo -} - -udp_test() { - #Run the UDP RR tests - TEST="UDP_RR" - SEND_SIZE="" - SOCKET_SIZE="-s 9216 -S 9216" - COW="-V" - do_req_rr_sizes - echo -} - -lla_test() { - #Run the UDP RR tests - TEST="HIPPI_RR" - SEND_SIZE="" - SOCKET_SIZE="" - COW="" - build_sap_list - do_req_rr_sizes - echo -} - -do_req_procs() { - if [ $TCP -eq 1 ] - then - TESTNAME="TCP" - display_headstone - for PROCS in $NPROC_LIST - do - #Determine number of procs per host - PROCS_PER_HOST=`echo $PROCS $REM_HOST_LIST | awk '{printf "%d",($1+NF-2)/(NF-1)}'` - NPROCS=`expr $PROCS_PER_HOST \* $NHOSTS` - tcp_test - done - fi - - if [ $UDP -eq 1 ] - then - TESTNAME="UDP" - display_headstone - for PROCS in $NPROC_LIST - do - #Determine number of procs per host - PROCS_PER_HOST=`echo $PROCS $REM_HOST_LIST | awk '{printf "%d",($1+NF-2)/(NF-1)}'` - NPROCS=`expr $PROCS_PER_HOST \* $NHOSTS` - udp_test - done - fi - - if [ $LLA -eq 1 ] - then - TESTNAME="LLA" - display_headstone - for PROCS in $NPROC_LIST - do - #Determine number of procs per host - PROCS_PER_HOST=`echo $PROCS $REM_HOST_LIST | awk '{printf "%d",($1+NF-2)/(NF-1)}'` - NPROCS=`expr $PROCS_PER_HOST \* $NHOSTS` - lla_test - done - fi -} - -###################################################################### - -init_parms - -PARMS="${0##*/} ${@}" - -# Parse the command line -while [ $# != 0 ] -do - case $1 in - \-gprof) GPROF=1 - GPROF_KERNEL=$2 - shift - ;; - \-t) TEST_TIME=$2 - shift - ;; - \-n) NPROC_LIST="$NPROC_LIST $2" - shift - ;; - \+lla) LLA=1 - ;; - \+tcp) TCP=1 - ;; - \+udp) UDP=1 - ;; - \-lla) LLA=0 - ;; - \-tcp) TCP=0 - ;; - \-udp) UDP=0 - ;; - \-d) DEVFILELIST="$DEVFILELIST $2" - shift - ;; - \-r) RR_SIZES="$RR_SIZES $2" - shift - ;; - \-*) usage $0: ERROR: Unexpected paramter: $1 - exit - ;; - *) REM_HOST_LIST="$REM_HOST_LIST $1" - ;; - esac - shift -done - -set_default_parms -check_usage -do_req_procs - |