|
@@ -0,0 +1,106 @@
|
|
|
+#!/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
|