From f38dcf386f3cf495f333e7984ed1caa6cd91f14e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Michal=20Voc=C5=AF?= Date: Wed, 16 Jul 2008 13:40:18 +0000 Subject: [PATCH] moved perftest script from proxy --- org.glite.lb.server/Makefile | 4 + org.glite.lb.server/src/perftest_proxy.sh | 128 ++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100755 org.glite.lb.server/src/perftest_proxy.sh diff --git a/org.glite.lb.server/Makefile b/org.glite.lb.server/Makefile index 90e38dd..d06fd59 100644 --- a/org.glite.lb.server/Makefile +++ b/org.glite.lb.server/Makefile @@ -354,6 +354,10 @@ install: install -m 644 ${STATIC_LIB_BK} ${PREFIX}/lib ${INSTALL} -m 644 ${top_srcdir}/interface/srv_perf.h ${PREFIX}/include/${globalprefix}/${lbprefix} ${INSTALL} -m 644 ${MAN_GZ} ${PREFIX}/share/man/man8 +ifdef LB_PERF + -mkdir -p ${PREFIX}/sbin + ${INSTALL} -m 755 ${top_srcdir}/src/perftest_proxy.sh ${PREFIX}/sbin + clean: rm -rvf *.c *.h *.ch *.xh *.xml *.nsmap *.o *.lo .libs glite-lb-* ${STATIC_LIB_BK} test* ${MAN_GZ} rm -rvf log.xml project/ rpmbuild/ RPMS/ tgz/ diff --git a/org.glite.lb.server/src/perftest_proxy.sh b/org.glite.lb.server/src/perftest_proxy.sh new file mode 100755 index 0000000..96d5094 --- /dev/null +++ b/org.glite.lb.server/src/perftest_proxy.sh @@ -0,0 +1,128 @@ +#!/bin/bash + +numjobs=10 + +# XXX - there must be better way to find stage +STAGEDIR=/home/michal/shared/egee/jra1-head/stage +. $STAGEDIR/sbin/perftest_common.sh + +LOGEVENT=${LOGEVENT:-$STAGEDIR/bin/glite-lb-logevent} + +DEBUG=${DEBUG:-0} + +SILENT=0 +while getopts "t:n:s" OPTION +do + case "$OPTION" in + "t") TEST_VARIANT=$OPTARG + ;; + + "n") numjobs=$OPTARG + ;; + + "s") SILENT=1 + ;; + + esac +done + +# CONSUMER_ARGS= +# PERFTEST_COMPONENT= +# COMPONENT_ARGS= +#LOGJOBS_ARGS="" + +check_test_files || exit 1 +check_file_executable $LOGEVENT || exit 1 + +SEQCODE="UI=999990:NS=9999999990:WM=999990:BH=9999999990:JSS=999990:LM=999990:LRMS=999990:APP=999990" + +purge_proxy () +{ + for jobid in $@ + do + $LOGEVENT -x -S /tmp/proxy.perfstore.sock -c $SEQCODE -j $jobid -s UserInterface -e Abort --reason Purge > /dev/null 2>&1 + done +} + +group_a () { +echo "----------------------------------" +echo "LB Proxy test" +echo "----------------------------------" +echo "Events are consumed:" +echo "1) before parsing" +echo "2) after parsing, before storing into database" +echo "3) after storing into db, before computing state" +echo "4) after computing state, before sending to IL" +echo "5) by IL" +echo "" +LOGJOBS_ARGS="-s /tmp/proxy.perf" +} + +echo -e "\tavg_job \t big_job \t avg_dag \t big_dag" + + +group_a_test_n () +{ + PERFTEST_CONSUMER=$STAGEDIR/bin/glite-lb-proxy + i=$1 + CONSUMER_ARGS="-d --perf-sink $i -p /tmp/proxy.perf" + export PERFTEST_NAME="proxy_test_$i" + echo -n "${i})" + run_test proxy $numjobs + print_result + # purge jobs from database + # we have to start proxy again + $PERFTEST_CONSUMER -d -p /tmp/proxy.perf -s 1 >/dev/null 2>&1 & + PID=$! + purge_proxy `$LOGJOBS -n $numjobs` + sleep 2 + shutdown $PID +} + +group_a_test_5 () +{ + PERFTEST_COMPONENT="$STAGEDIR/bin/glite-lb-proxy" + COMPONENT_ARGS="-d -p /tmp/proxy.perf --proxy-il-sock /tmp/interlogger.perf --proxy-il-fprefix /tmp/perftest.log" + + PERFTEST_CONSUMER="$STAGEDIR/bin/glite-lb-interlogd-perf-empty" + CONSUMER_ARGS="-d -s /tmp/interlogger.perf --file-prefix=/tmp/perftest.log" + export PERFTEST_NAME="proxy_test_5" + echo -n "5)" + run_test proxy $numjobs + print_result + $PERFTEST_COMPONENT -d -p /tmp/proxy.perf -s 1 >/dev/null 2>&1 & + PID=$! + purge_proxy `$LOGJOBS -n $numjobs` + sleep 2 + shutdown $PID + rm -f /tmp/perftest.log.* +} + +group="a" + +group_$group + +if [[ $SILENT -eq 0 ]] +then + while [[ -z $TEST_VARIANT ]] + do + echo -n "Your choice: " + read -e TEST_VARIANT + done + echo -e "\tavg_job \t big_job \t avg_dag \t big_dag" +fi + +if [[ "x$TEST_VARIANT" = "x*" ]] +then + TEST_VARIANT="1 2 3 4 5" +fi + +for variant in $TEST_VARIANT +do + if [[ "$variant" = "5" ]] + then + group_${group}_test_${variant} + else + group_${group}_test_n $variant + fi +done -- 1.8.2.3