profile/launch.sh
f938f5ee
 #!/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
 
5b253cc6
 CONFIG=profile.cfg
 
f938f5ee
 SRD=${HOME}/sip_router
 PRO=${SRD}/profile
 REP=$PRO/$PREF.txt
5b253cc6
 EXEC=ser
f938f5ee
 
 
 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"
 
5b253cc6
 /usr/bin/time --output="$PRO/${PREF}-${i}-time.txt" ${SRD}/$EXEC -l 192.168.99.100 -D -E -d -f ${PRO}/$CONFIG &
f938f5ee
 
 #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 '
 
5b253cc6
 killall -INT $EXEC
f938f5ee
 
5b253cc6
 gprof $EXEC > $PRO/${PREF}-${i}.txt
f938f5ee
 
 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