mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.0 KiB
107 lines
2.0 KiB
#!/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
|