moved perftest script from proxy
authorMichal Voců <michal@ruk.cuni.cz>
Wed, 16 Jul 2008 13:40:18 +0000 (13:40 +0000)
committerMichal Voců <michal@ruk.cuni.cz>
Wed, 16 Jul 2008 13:40:18 +0000 (13:40 +0000)
org.glite.lb.server/Makefile
org.glite.lb.server/src/perftest_proxy.sh [new file with mode: 0755]

index 90e38dd..d06fd59 100644 (file)
@@ -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 (executable)
index 0000000..96d5094
--- /dev/null
@@ -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