123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #!/bin/sh -x
- # profile filename
- PREF=$1
- # number of cycles
- NROFCYCLES=4
- # functions to go into report
- MYFN="eat_line|eat_space|eat_token"
- # set to non-zero if only a report is to be generated
- #REPONLY=tru
- CONFIG=profile.cfg
- SRD=${HOME}/sip_router
- PRO=${SRD}/profile
- REP=$PRO/$PREF.txt
- EXEC=ser
- function usage()
- {
- cat << EOF
- usage: $0 profile_name
- currently, this script starts a remote sender at alioth.
- The sender iterates through all messages available in its
- directory and send them many times (should be configurable).
- Sip-router is configured to relay requests to benetnash:sink
- and responses are built to be routed there too.
- This repeats NROFCYCLES-times. Results of all cycles are then
- dumped into <profile_name>-<cycle number>.txt and a
- report <profile_name>.txt is generated.
- EOF
- exit 1
- }
- if [ "$#" -ne 1 ] ; then
- usage
- fi
- cd $SRD
- function run()
- {
- j=0
- while [ $j -lt "$NROFCYCLES" ] ; do
- i=`printf "%.3d" $j`
- j=`expr $j + 1`
- echo "*** Entering cycle $j"
- /usr/bin/time --output="$PRO/${PREF}-${i}-time.txt" ${SRD}/$EXEC -l 192.168.99.100 -D -E -d -f ${PRO}/$CONFIG &
- #rsh -l jku benetnash.fokus.gmd.de 'nohup bin/sock -s -u 5060 '
- rsh -l jku alioth.fokus.gmd.de 'nohup tmp/sipp/start.sh '
- killall -INT $EXEC
- gprof $EXEC > $PRO/${PREF}-${i}.txt
- done
- }
- function report()
- {
- cat > $REP << EOF
- first line ... time spent in tested procedure
- second line (yyrestart) ... total time
- third line (receive_msg) ... numer of calls
- % cumulative self self total
- time seconds seconds calls ms/call ms/call name
- EOF
- j=0
- while [ $j -lt "$NROFCYCLES" ] ; do
- i=`printf "%.3d" $j`
- j=`expr $j + 1`
- FN="${PRO}/${PREF}-${i}.txt"
- echo >> $REP
- echo >> $REP
- echo $FN >> $REP
- egrep "($MYFN|yyrestart)" $FN | grep -v '\[' >> $REP
- grep 'receive_msg \[.\]' $FN | grep -v '\/' >> $REP
- echo >> $REP
- cat $PRO/${PREF}-${i}-time.txt >> $REP
- done
- cat >> $REP << EOF
- Execution environment:
- EOF
- cat /proc/cpuinfo /proc/meminfo >> $REP
- }
- if [ -z "$REPONLY" ] ; then
- run
- fi
- report
- echo '*** finished ***'
- echo
|