📄 runbench
字号:
#!/bin/sh# /project/cvs-repository/ACE_wrappers-repository/apps/JAWS/clients/WebSTONE/bin/runbench,v 1.1 1997/07/07 17:45:46 sumedh Exp# set -xset +x[ -n "$WEBSTONEROOT" ] || WEBSTONEROOT=`pwd`/../case $# in 1) FILELIST=$1 ;; *) FILELIST=$WEBSTONEROOT/conf/filelist ;;esac# load configurations. $WEBSTONEROOT/conf/testbed[ -n "$DEBUG" ] && set +x# check variables[ -n "$ITERATIONS" ] || ITERATIONS="1"[ -n "$MINCLIENTS" ] || MINCLIENTS="1"[ -n "$MAXCLIENTS" ] || MAXCLIENTS="1"[ -n "$CLIENTINCR" ] || CLIENTINCR="1"[ -n "$TIMEPERRUN" ] || TIMEPERRUN="1"# don't care about PROXYSERVER[ -n "$SERVER" ] || SERVER="www"[ -n "$PORTNO" ] || PORTNO="80"# [ -n "$SERVERINFO" ] || SERVERINFO="uname -a"# OSTUNINGFILES# WEBSERVERDIR# WEBDOCDIR# WEBSERVERTUNINGFILES[ -n "$CLIENTS" ] || CLIENTS="localhost"[ -n "$CLIENTACCOUNT" ] || CLIENTACCOUNT=$USER[ -n "$CLIENTPASSWORD" ] || CLIENTPASSWORD=$CLIENTACCOUNT# [ -n "$CLIENTINFO" ] || CLIENTINFO="uname -a"[ -n "$TMPDIR" ] || TMPDIR="/tmp"[ -n "$RCP" ] || RCP="rcp"[ -n "$RSH" ] || RSH="rsh"export ITERATIONS MINCLIENTS MAXCLIENTS CLIENTINCR TIMEPERRUN export SERVER PORTNO SERVERINFO export CLIENTS CLIENTACCOUNT CLIENTPASSWORD CLIENTINFOexport TMPDIR RCP RSHecho "Clients: " $CLIENTS## Estimate run time#NUMCLIENTHOSTS=`echo $CLIENTS | wc -w`TRIALS=`expr 1 + \( $MAXCLIENTS - $MINCLIENTS \) / $CLIENTINCR`RUNTIME=`expr 60 \* $ITERATIONS \* $TRIALS \* $TIMEPERRUN`RUNTIME=`expr $RUNTIME + $TRIALS \* \( $MAXCLIENTS + $MINCLIENTS \) \ / \( 2 \* $NUMCLIENTHOSTS \)`echo "Estimated run time:" `expr $RUNTIME / 3600` "hours" \ `expr $RUNTIME % 3600 / 60` "minutes" ## Checking for valid set of benchmark files to retrieve##if [ -z "$PROXYSERVER" ]#then# echo "Checking for a valid set of benchmark files"# CHECKLISTTMP=$TMPDIR/webstone-checkfilelist.$$# rm -f $CHECKFILELISTTMP# $WEBSTONEROOT/bin/checkfilelist $SERVER $PORTNO $FILELIST > $CHECKLISTTMP 2>&1# if [ `grep -c ' 4[0-9][0-9] '< $CHECKLISTTMP` -gt 0 ]# then# echo "ERROR: not all files in filelist are on server:"# echo "----- checkfilelist results -----"# cat $CHECKLISTTMP# echo "----- checkfilelist results -----"# rm -f $CHECKLISTTMP# exit 1# else# echo "OK: All files found"# fi# rm -f $CHECKLISTTMP#fi# end if $PROXYSERVER## distribute webclient binary#for i in $CLIENTSdo $RCP $WEBSTONEROOT/bin/webclient $i:$TMPDIR #/usr/local/bindone# BEGIN iterationsJ=1while [ $J -le $ITERATIONS ]do NUMCLIENTS=$MINCLIENTS while [ $NUMCLIENTS -le $MAXCLIENTS ] do echo "***** Iteration $J, Total clients "`expr $NUMCLIENTS`" **********" date TIMESTAMP=`date +"%y%m%d_%H%M"` LOGDIR=$WEBSTONEROOT/bin/runs/$TIMESTAMP # # nuke debug files # for client in $CLIENTS do $RSH $client "rm /tmp/webstone-debug*" > /dev/null 2>&1 done mkdir -p $LOGDIR rm -f $LOGDIR/config touch $LOGDIR/config CLIENTSPERHOST=`expr $NUMCLIENTS / $NUMCLIENTHOSTS` EXTRACLIENTS=`expr $NUMCLIENTS % $NUMCLIENTHOSTS` for i in $CLIENTS do if [ $EXTRACLIENTS -gt 0 ] then echo "$i $CLIENTACCOUNT $CLIENTPASSWORD `expr $CLIENTSPERHOST + 1`" \ >> $LOGDIR/config EXTRACLIENTS=`expr $EXTRACLIENTS - 1` else echo "$i $CLIENTACCOUNT $CLIENTPASSWORD $CLIENTSPERHOST" \ >> $LOGDIR/config fi done cp $FILELIST $LOGDIR/`basename $FILELIST` # # Put test configuration files on clients # for i in $CLIENTS localhost do $RSH $i "rm -f $TMPDIR/config $TMPDIR/`basename $FILELIST`" $RCP $LOGDIR/config $i:$TMPDIR/config $RCP $LOGDIR/`basename $FILELIST` $i:$TMPDIR/filelist done # # Get starting configuration and stats from each participant # $RSH $SERVER "$SERVERINFO" > $LOGDIR/hardware.$SERVER 2>&1 for i in $CLIENTS do $RSH $i "$CLIENTINFO" > $LOGDIR/hardware.$i 2>&1 done # set -x for i in $OSTUNINGFILES $WEBSERVERTUNINGFILES do $RCP $SERVER:$i $LOGDIR done set +x # # Run benchmark # date CMD="$WEBSTONEROOT/bin/webmaster -v -u $TMPDIR/filelist" CMD=$CMD" -f $TMPDIR/config -l $TIMEPERRUN" [ -n "$SERVER" ] && CMD=$CMD" -w $SERVER" [ -n "$PORTNO" ] && CMD=$CMD" -p $PORTNO" [ -n "$PROXYSERVER" ] && CMD=$CMD" -P $PROXYSERVER" [ -n "$DEBUG" ] && CMD=$CMD" -d" echo $CMD # dump environment into $LOGDIR rm -rf $LOGDIR/controller.env env > $LOGDIR/controller.env $CMD | tee $LOGDIR/run # # Get ending configuration and stats from each participant # date #for i in $SERVER $CLIENTS #do #$WEBSTONEROOT/bin/getstats $i > $LOGDIR/end.$i 2>&1 #done #date NUMCLIENTS=`expr $NUMCLIENTS + $CLIENTINCR` done # while NUMCLIENTS J=`expr $J + 1`done# while J# end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -