From a79532a7bf0a56c87d34bd8be4affc6af187ce8c Mon Sep 17 00:00:00 2001 From: Florian Fittkau <ffi@informatik.uni-kiel.de> Date: Mon, 18 Nov 2013 16:25:20 +0100 Subject: [PATCH] remote scripts for kieker days ffi --- .../benchmark-kieker-days-ffi-remote.sh | 262 ++++++++++++++++ .../benchmark-kieker-days-ffi.sh | 251 +++++++++++++++ .../benchmark-kieker-days-kieker.sh | 295 ++++++++++++++++++ 3 files changed, 808 insertions(+) create mode 100644 bin/2013-kieker-days-ffi/benchmark-kieker-days-ffi-remote.sh create mode 100644 bin/2013-kieker-days-ffi/benchmark-kieker-days-ffi.sh create mode 100644 bin/2013-kieker-days-ffi/benchmark-kieker-days-kieker.sh diff --git a/bin/2013-kieker-days-ffi/benchmark-kieker-days-ffi-remote.sh b/bin/2013-kieker-days-ffi/benchmark-kieker-days-ffi-remote.sh new file mode 100644 index 0000000..944ce06 --- /dev/null +++ b/bin/2013-kieker-days-ffi/benchmark-kieker-days-ffi-remote.sh @@ -0,0 +1,262 @@ +#!/bin/bash + +JAVABIN="/localhome/ffi/jdk1.7.0_25/bin/" +REMOTEHOST="blade1" +REMOTEBASEDIR="/localhome/ffi/" + +RSCRIPTDIR=bin/icpe/r/ +BASEDIR=./ +RESULTSDIR="${BASEDIR}tmp/results-benchmark-kieker-days-ffi/" +REMOTERESULTSDIR="${REMOTEBASEDIR}tmp/results-benchmark-kieker-days-ffi/" + +SLEEPTIME=1 ## 30 +NUM_LOOPS=1 ## 10 +THREADS=1 ## 1 +RECURSIONDEPTH=10 ## 10 +TOTALCALLS=2000000 ## 20000000 +METHODTIME=0 ## 0 + +#MOREPARAMS="" +MOREPARAMS="--quickstart" + +TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} ` +echo "Experiment will take circa ${TIME} seconds." + +echo "Removing and recreating '$RESULTSDIR'" +(rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR} +mkdir ${RESULTSDIR}stat/ + +ssh ${REMOTEHOST} "(rm -rf ${REMOTERESULTSDIR}) && mkdir ${REMOTERESULTSDIR}" +ssh ${REMOTEHOST} "mkdir ${REMOTERESULTSDIR}stat/" + +RAWFN="${RESULTSDIR}raw" + +JAVAARGS="-server" +JAVAARGS="${JAVAARGS} -d64" +JAVAARGS="${JAVAARGS} -Xms1G -Xmx4G" +JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation" +#JAVAARGS="${JAVAARGS} -XX:+PrintInlining" +#JAVAARGS="${JAVAARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation" +#JAVAARGS="${JAVAARGS} -Djava.compiler=NONE" +JARNoInstru="-jar dist/OverheadEvaluationMicrobenchmarkTCPffiNoInstru.jar" +JARDeactived="-jar dist/OverheadEvaluationMicrobenchmarkTCPffiDeactivated.jar" +JARCollecting="-jar dist/OverheadEvaluationMicrobenchmarkTCPffiCollecting.jar" +JARNORMAL="-jar dist/OverheadEvaluationMicrobenchmarkTCPffiNormal.jar" + +JAVAARGS_NOINSTR="${JAVAARGS}" +JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}lib/aspectjweaver.jar -Dorg.aspectj.weaver.showWeaveInfo=false -Daj.weaving.verbose=false -Dorg.aspectj.weaver.loadtime.configuration=META-INF/kieker-overhead-benchmark.aop.xml" + +## Write configuration +uname -a >${RESULTSDIR}configuration.txt +${JAVABIN}java ${JAVAARGS} -version 2>>${RESULTSDIR}configuration.txt +echo "JAVAARGS: ${JAVAARGS}" >>${RESULTSDIR}configuration.txt +echo "" >>${RESULTSDIR}configuration.txt +echo "Runtime: circa ${TIME} seconds" >>${RESULTSDIR}configuration.txt +echo "" >>${RESULTSDIR}configuration.txt +echo "SLEEPTIME=${SLEEPTIME}" >>${RESULTSDIR}configuration.txt +echo "NUM_LOOPS=${NUM_LOOPS}" >>${RESULTSDIR}configuration.txt +echo "TOTALCALLS=${TOTALCALLS}" >>${RESULTSDIR}configuration.txt +echo "METHODTIME=${METHODTIME}" >>${RESULTSDIR}configuration.txt +echo "THREADS=${THREADS}" >>${RESULTSDIR}configuration.txt +echo "RECURSIONDEPTH=${RECURSIONDEPTH}" >>${RESULTSDIR}configuration.txt +sync + +## Execute Benchmark + +for ((i=1;i<=${NUM_LOOPS};i+=1)); do + j=${RECURSIONDEPTH} + k=0 + echo "## Starting iteration ${i}/${NUM_LOOPS}" + + # No instrumentation + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} No instrumentation" + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java ${JAVAARGS_NOINSTR} ${JARNoInstru} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + sync + sleep ${SLEEPTIME} + + # Deactivated Probe + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Deactivated Probe" + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ssh ${REMOTEHOST} "nohup ${JAVABIN}java -jar ${REMOTERESULTSDIR}dist/explorviz_worker.jar >${REMOTERESULTSDIR}worker-${i}-${j}-${k}.log &" + sleep 5 + ${JAVABIN}java ${JAVAARGS_LTW} ${JARDeactived} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + pkill -f 'java -jar' + ssh ${REMOTEHOST} "pkill -f 'java -jar'" + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + sync + sleep ${SLEEPTIME} + + # Collecting + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Collecting" + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ssh ${REMOTEHOST} "nohup ${JAVABIN}java -jar ${REMOTERESULTSDIR}dist/explorviz_worker.jar >${REMOTERESULTSDIR}worker-${i}-${j}-${k}.log &" + sleep 5 + ${JAVABIN}java ${JAVAARGS_LTW} ${JARCollecting} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + pkill -f 'java -jar' + ssh ${REMOTEHOST} "pkill -f 'java -jar'" + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + sync + sleep ${SLEEPTIME} + + # Logging + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Logging" + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ssh ${REMOTEHOST} "nohup ${JAVABIN}java -jar ${REMOTERESULTSDIR}dist/explorviz_worker.jar >${REMOTERESULTSDIR}worker-${i}-${j}-${k}.log &" + sleep 5 + ${JAVABIN}java ${JAVAARGS_LTW} ${JARNORMAL} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + pkill -f 'java -jar' + ssh ${REMOTEHOST} "pkill -f 'java -jar'" + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + sync + sleep ${SLEEPTIME} + + # Reconstruction + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Reconstruction" + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ssh ${REMOTEHOST} "nohup ${JAVABIN}java -jar ${REMOTERESULTSDIR}dist/explorviz_workerReconstruction.jar >${REMOTERESULTSDIR}worker-${i}-${j}-${k}.log &" + sleep 5 + ${JAVABIN}java ${JAVAARGS_LTW} ${JARNORMAL} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + pkill -f 'java -jar' + ssh ${REMOTEHOST} "pkill -f 'java -jar'" + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + sync + sleep ${SLEEPTIME} + + # Reduction + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Reduction" + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ssh ${REMOTEHOST} "nohup ${JAVABIN}java -jar ${REMOTERESULTSDIR}dist/explorviz_workerReduction.jar >${REMOTERESULTSDIR}worker-${i}-${j}-${k}.log &" + sleep 5 + ${JAVABIN}java ${JAVAARGS_LTW} ${JARNORMAL} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + pkill -f 'java -jar' + ssh ${REMOTEHOST} "pkill -f 'java -jar'" + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + sync + sleep ${SLEEPTIME} + +done +zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat +rm -rf ${RESULTSDIR}stat/ +[ -f ${RESULTSDIR}hotspot-1-${RECURSIONDEPTH}-1.log ] && grep "<task " ${RESULTSDIR}hotspot-*.log >${RESULTSDIR}log.log +[ -f ${BASEDIR}errorlog.txt ] && mv ${BASEDIR}errorlog.txt ${RESULTSDIR} + +## Generate Results file +# Timeseries +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-timeseries.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +configs.colors=c("black","red","blue","green","yellow","purple") +results.count=${TOTALCALLS} +tsconf.min=(${METHODTIME}/1000) +tsconf.max=(${METHODTIME}/1000)+40 +source("${RSCRIPTDIR}timeseries.r") +EOF +# Timeseries-Average +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-timeseries-average.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +configs.colors=c("black","red","blue","green","yellow","purple") +results.count=${TOTALCALLS} +tsconf.min=(${METHODTIME}/1000) +tsconf.max=(${METHODTIME}/1000)+40 +source("${RSCRIPTDIR}timeseries-average.r") +EOF +# Throughput +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-throughput.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +configs.colors=c("black","red","blue","green","yellow","purple") +results.count=${TOTALCALLS} +source("${RSCRIPTDIR}throughput.r") +EOF +# Throughput-Average +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-throughput-average.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +configs.colors=c("black","red","blue","green","yellow","purple") +results.count=${TOTALCALLS} +source("${RSCRIPTDIR}throughput-average.r") +EOF +# Bars +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-bars.pdf" +outtxt_fn="${RESULTSDIR}results-text.txt" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +results.count=${TOTALCALLS} +results.skip=${TOTALCALLS}/2 +bars.minval=(${METHODTIME}/1000) +bars.maxval=(${METHODTIME}/1000)+40 +source("${RSCRIPTDIR}bar.r") +EOF + +## Clean up raw results +zip -jqr ${RESULTSDIR}results.zip ${RAWFN}* +rm -f ${RAWFN}* +zip -jqr ${RESULTSDIR}worker.zip ${RESULTSDIR}worker*.log +rm -f ${RESULTSDIR}worker*.log +[ -f ${BASEDIR}nohup.out ] && mv ${BASEDIR}nohup.out ${RESULTSDIR} diff --git a/bin/2013-kieker-days-ffi/benchmark-kieker-days-ffi.sh b/bin/2013-kieker-days-ffi/benchmark-kieker-days-ffi.sh new file mode 100644 index 0000000..2267beb --- /dev/null +++ b/bin/2013-kieker-days-ffi/benchmark-kieker-days-ffi.sh @@ -0,0 +1,251 @@ +#!/bin/bash + +JAVABIN="/localhome/ffi/jdk1.7.0_25/bin/" + +RSCRIPTDIR=bin/icpe/r/ +BASEDIR=./ +RESULTSDIR="${BASEDIR}tmp/results-benchmark-kieker-days-ffi/" + +SLEEPTIME=30 ## 30 +NUM_LOOPS=1 ## 10 +THREADS=1 ## 1 +RECURSIONDEPTH=10 ## 10 +TOTALCALLS=20000000 ## 20000000 +METHODTIME=0 ## 0 + +MOREPARAMS="" +#MOREPARAMS="--quickstart" + +TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} ` +echo "Experiment will take circa ${TIME} seconds." + +echo "Removing and recreating '$RESULTSDIR'" +(rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR} +mkdir ${RESULTSDIR}stat/ + +RAWFN="${RESULTSDIR}raw" + +JAVAARGS="-server" +JAVAARGS="${JAVAARGS} -d64" +JAVAARGS="${JAVAARGS} -Xms1G -Xmx4G" +JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation" +#JAVAARGS="${JAVAARGS} -XX:+PrintInlining" +#JAVAARGS="${JAVAARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation" +#JAVAARGS="${JAVAARGS} -Djava.compiler=NONE" +JARNoInstru="-jar dist/OverheadEvaluationMicrobenchmarkTCPffiNoInstru.jar" +JARDeactived="-jar dist/OverheadEvaluationMicrobenchmarkTCPffiDeactivated.jar" +JARCollecting="-jar dist/OverheadEvaluationMicrobenchmarkTCPffiCollecting.jar" +JARNORMAL="-jar dist/OverheadEvaluationMicrobenchmarkTCPffiNormal.jar" + +JAVAARGS_NOINSTR="${JAVAARGS}" +JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}lib/aspectjweaver.jar -Dorg.aspectj.weaver.showWeaveInfo=false -Daj.weaving.verbose=false -Dorg.aspectj.weaver.loadtime.configuration=META-INF/kieker-overhead-benchmark.aop.xml" + +## Write configuration +uname -a >${RESULTSDIR}configuration.txt +${JAVABIN}java ${JAVAARGS} -version 2>>${RESULTSDIR}configuration.txt +echo "JAVAARGS: ${JAVAARGS}" >>${RESULTSDIR}configuration.txt +echo "" >>${RESULTSDIR}configuration.txt +echo "Runtime: circa ${TIME} seconds" >>${RESULTSDIR}configuration.txt +echo "" >>${RESULTSDIR}configuration.txt +echo "SLEEPTIME=${SLEEPTIME}" >>${RESULTSDIR}configuration.txt +echo "NUM_LOOPS=${NUM_LOOPS}" >>${RESULTSDIR}configuration.txt +echo "TOTALCALLS=${TOTALCALLS}" >>${RESULTSDIR}configuration.txt +echo "METHODTIME=${METHODTIME}" >>${RESULTSDIR}configuration.txt +echo "THREADS=${THREADS}" >>${RESULTSDIR}configuration.txt +echo "RECURSIONDEPTH=${RECURSIONDEPTH}" >>${RESULTSDIR}configuration.txt +sync + +## Execute Benchmark + +for ((i=1;i<=${NUM_LOOPS};i+=1)); do + j=${RECURSIONDEPTH} + k=0 + echo "## Starting iteration ${i}/${NUM_LOOPS}" + + # No instrumentation + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} No instrumentation" + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java ${JAVAARGS_NOINSTR} ${JARNoInstru} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + sync + sleep ${SLEEPTIME} + + # Deactivated Probe + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Deactivated Probe" + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java -jar dist/explorviz_worker.jar >${RESULTSDIR}worker-${i}-${j}-${k}.log & + sleep 5 + ${JAVABIN}java ${JAVAARGS_LTW} ${JARDeactived} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + pkill -f 'java -jar' + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + sync + sleep ${SLEEPTIME} + + # Collecting + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Collecting" + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java -jar dist/explorviz_worker.jar >${RESULTSDIR}worker-${i}-${j}-${k}.log & + sleep 5 + ${JAVABIN}java ${JAVAARGS_LTW} ${JARCollecting} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + pkill -f 'java -jar' + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + sync + sleep ${SLEEPTIME} + + # Logging + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Logging" + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java -jar dist/explorviz_worker.jar >${RESULTSDIR}worker-${i}-${j}-${k}.log & + sleep 5 + ${JAVABIN}java ${JAVAARGS_LTW} ${JARNORMAL} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + pkill -f 'java -jar' + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + sync + sleep ${SLEEPTIME} + + # Reconstruction + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Reconstruction" + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java -jar dist/explorviz_workerReconstruction.jar >${RESULTSDIR}worker-${i}-${j}-${k}.log & + sleep 5 + ${JAVABIN}java ${JAVAARGS_LTW} ${JARNORMAL} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + pkill -f 'java -jar' + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + sync + sleep ${SLEEPTIME} + + # Reduction + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Reduction" + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java -jar dist/explorviz_workerReduction.jar >${RESULTSDIR}worker-${i}-${j}-${k}.log & + sleep 5 + ${JAVABIN}java ${JAVAARGS_LTW} ${JARNORMAL} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + pkill -f 'java -jar' + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + sync + sleep ${SLEEPTIME} + +done +zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat +rm -rf ${RESULTSDIR}stat/ +[ -f ${RESULTSDIR}hotspot-1-${RECURSIONDEPTH}-1.log ] && grep "<task " ${RESULTSDIR}hotspot-*.log >${RESULTSDIR}log.log +[ -f ${BASEDIR}errorlog.txt ] && mv ${BASEDIR}errorlog.txt ${RESULTSDIR} + +## Generate Results file +# Timeseries +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-timeseries.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +configs.colors=c("black","red","blue","green","yellow","purple") +results.count=${TOTALCALLS} +tsconf.min=(${METHODTIME}/1000) +tsconf.max=(${METHODTIME}/1000)+40 +source("${RSCRIPTDIR}timeseries.r") +EOF +# Timeseries-Average +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-timeseries-average.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +configs.colors=c("black","red","blue","green","yellow","purple") +results.count=${TOTALCALLS} +tsconf.min=(${METHODTIME}/1000) +tsconf.max=(${METHODTIME}/1000)+40 +source("${RSCRIPTDIR}timeseries-average.r") +EOF +# Throughput +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-throughput.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +configs.colors=c("black","red","blue","green","yellow","purple") +results.count=${TOTALCALLS} +source("${RSCRIPTDIR}throughput.r") +EOF +# Throughput-Average +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-throughput-average.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +configs.colors=c("black","red","blue","green","yellow","purple") +results.count=${TOTALCALLS} +source("${RSCRIPTDIR}throughput-average.r") +EOF +# Bars +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-bars.pdf" +outtxt_fn="${RESULTSDIR}results-text.txt" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +results.count=${TOTALCALLS} +results.skip=${TOTALCALLS}/2 +bars.minval=(${METHODTIME}/1000) +bars.maxval=(${METHODTIME}/1000)+40 +source("${RSCRIPTDIR}bar.r") +EOF + +## Clean up raw results +zip -jqr ${RESULTSDIR}results.zip ${RAWFN}* +rm -f ${RAWFN}* +zip -jqr ${RESULTSDIR}worker.zip ${RESULTSDIR}worker*.log +rm -f ${RESULTSDIR}worker*.log +[ -f ${BASEDIR}nohup.out ] && mv ${BASEDIR}nohup.out ${RESULTSDIR} diff --git a/bin/2013-kieker-days-ffi/benchmark-kieker-days-kieker.sh b/bin/2013-kieker-days-ffi/benchmark-kieker-days-kieker.sh new file mode 100644 index 0000000..946b3cc --- /dev/null +++ b/bin/2013-kieker-days-ffi/benchmark-kieker-days-kieker.sh @@ -0,0 +1,295 @@ +#!/bin/bash + +JAVABIN="/localhome/ffi/jdk1.7.0_25/bin/" + +RSCRIPTDIR=bin/icpe/r/ +BASEDIR=./ +RESULTSDIR="${BASEDIR}tmp/results-benchmark-kieker-days-kieker/" + +SLEEPTIME=30 ## 30 +NUM_LOOPS=1 ## 10 +THREADS=1 ## 1 +RECURSIONDEPTH=10 ## 10 +TOTALCALLS=2000000 ## 20000000 +METHODTIME=0 ## 0 + +#MOREPARAMS="" +MOREPARAMS="--quickstart" + +TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} ` +echo "Experiment will take circa ${TIME} seconds." + +echo "Removing and recreating '$RESULTSDIR'" +(rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR} +mkdir ${RESULTSDIR}stat/ + +# Clear kieker.log and initialize logging +rm -f ${BASEDIR}kieker.log +touch ${BASEDIR}kieker.log + +RAWFN="${RESULTSDIR}raw" + +JAVAARGS="-server" +JAVAARGS="${JAVAARGS} -d64" +JAVAARGS="${JAVAARGS} -Xms1G -Xmx4G" +JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation" +#JAVAARGS="${JAVAARGS} -XX:+PrintInlining" +#JAVAARGS="${JAVAARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation" +#JAVAARGS="${JAVAARGS} -Djava.compiler=NONE" +JAR="-jar dist/OverheadEvaluationMicrobenchmarkKieker.jar" + +JAVAARGS_NOINSTR="${JAVAARGS}" +JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}lib/kieker-1.9-SNAPSHOT_aspectj.jar -Dorg.aspectj.weaver.showWeaveInfo=false -Daj.weaving.verbose=false -Dkieker.monitoring.adaptiveMonitoring.enabled=false -Dorg.aspectj.weaver.loadtime.configuration=META-INF/kieker.aop.xml" +JAVAARGS_KIEKER_DEACTV="${JAVAARGS_LTW} -Dkieker.monitoring.enabled=false -Dkieker.monitoring.writer=kieker.monitoring.writer.DummyWriter" +JAVAARGS_KIEKER_NOLOGGING="${JAVAARGS_LTW} -Dkieker.monitoring.writer=kieker.monitoring.writer.DummyWriter" +JAVAARGS_KIEKER_LOGGING="${JAVAARGS_LTW} -Dkieker.monitoring.writer=kieker.monitoring.writer.tcp.TCPWriter -Dkieker.monitoring.writer.tcp.TCPWriter.QueueSize=100000 -Dkieker.monitoring.writer.tcp.TCPWriter.QueueFullBehavior=1" + +## Write configuration +uname -a >${RESULTSDIR}configuration.txt +${JAVABIN}java ${JAVAARGS} -version 2>>${RESULTSDIR}configuration.txt +echo "JAVAARGS: ${JAVAARGS}" >>${RESULTSDIR}configuration.txt +echo "" >>${RESULTSDIR}configuration.txt +echo "Runtime: circa ${TIME} seconds" >>${RESULTSDIR}configuration.txt +echo "" >>${RESULTSDIR}configuration.txt +echo "SLEEPTIME=${SLEEPTIME}" >>${RESULTSDIR}configuration.txt +echo "NUM_LOOPS=${NUM_LOOPS}" >>${RESULTSDIR}configuration.txt +echo "TOTALCALLS=${TOTALCALLS}" >>${RESULTSDIR}configuration.txt +echo "METHODTIME=${METHODTIME}" >>${RESULTSDIR}configuration.txt +echo "THREADS=${THREADS}" >>${RESULTSDIR}configuration.txt +echo "RECURSIONDEPTH=${RECURSIONDEPTH}" >>${RESULTSDIR}configuration.txt +sync + +## Execute Benchmark +for ((i=1;i<=${NUM_LOOPS};i+=1)); do + j=${RECURSIONDEPTH} + k=0 + echo "## Starting iteration ${i}/${NUM_LOOPS}" + echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASEDIR}kieker.log + + # No instrumentation + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} No instrumentation" + echo " # ${i}.${j}.${k} No instrumentation" >>${BASEDIR}kieker.log + mpstat 1 > ${RESULTSDIR}stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULTSDIR}stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULTSDIR}stat/iostat-${i}-${j}-${k}.txt & + ${JAVABIN}java ${JAVAARGS_NOINSTR} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %mpstat + kill %vmstat + kill %iostat + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}kieker.log + echo >>${BASEDIR}kieker.log + sync + sleep ${SLEEPTIME} + + # Deactivated probe + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Deactivated probe" + echo " # ${i}.${j}.${k} Deactivated probe" >>${BASEDIR}kieker.log + mpstat 1 > ${RESULTSDIR}stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULTSDIR}stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULTSDIR}stat/iostat-${i}-${j}-${k}.txt & + ${JAVABIN}java ${JAVAARGS_KIEKER_DEACTV} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %mpstat + kill %vmstat + kill %iostat + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}kieker.log + echo >>${BASEDIR}kieker.log + sync + sleep ${SLEEPTIME} + + # No logging + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} No logging (null writer)" + echo " # ${i}.${j}.${k} No logging (null writer)" >>${BASEDIR}kieker.log + mpstat 1 > ${RESULTSDIR}stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULTSDIR}stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULTSDIR}stat/iostat-${i}-${j}-${k}.txt & + ${JAVABIN}java ${JAVAARGS_KIEKER_NOLOGGING} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %mpstat + kill %vmstat + kill %iostat + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}kieker.log + echo >>${BASEDIR}kieker.log + sync + sleep ${SLEEPTIME} + + # Logging + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Logging" + echo " # ${i}.${j}.${k} Logging" >>${BASEDIR}kieker.log + mpstat 1 > ${RESULTSDIR}stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULTSDIR}stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULTSDIR}stat/iostat-${i}-${j}-${k}.txt & + ${JAVABIN}java -jar dist/KiekerTCPReader1.jar 2>${RESULTSDIR}worker-${i}-${j}-${k}.log & + sleep 5 + ${JAVABIN}java ${JAVAARGS_KIEKER_LOGGING} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %mpstat + kill %vmstat + kill %iostat + pkill -f 'java -jar' + rm -rf ${BASEDIR}tmp/kieker-* + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}kieker.log + echo >>${BASEDIR}kieker.log + sync + sleep ${SLEEPTIME} + + # Reconstruction + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Logging" + echo " # ${i}.${j}.${k} Logging" >>${BASEDIR}kieker.log + mpstat 1 > ${RESULTSDIR}stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULTSDIR}stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULTSDIR}stat/iostat-${i}-${j}-${k}.txt & + ${JAVABIN}java -jar dist/KiekerTCPReader2.jar 2>${RESULTSDIR}worker-${i}-${j}-${k}.log & + sleep 5 + ${JAVABIN}java ${JAVAARGS_KIEKER_LOGGING} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %mpstat + kill %vmstat + kill %iostat + pkill -f 'java -jar' + rm -rf ${BASEDIR}tmp/kieker-* + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}kieker.log + echo >>${BASEDIR}kieker.log + sync + sleep ${SLEEPTIME} + + # Reduction + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} Logging" + echo " # ${i}.${j}.${k} Logging" >>${BASEDIR}kieker.log + mpstat 1 > ${RESULTSDIR}stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULTSDIR}stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULTSDIR}stat/iostat-${i}-${j}-${k}.txt & + ${JAVABIN}java -jar dist/KiekerTCPReader3.jar 2>${RESULTSDIR}worker-${i}-${j}-${k}.log & + sleep 5 + ${JAVABIN}java ${JAVAARGS_KIEKER_LOGGING} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %mpstat + kill %vmstat + kill %iostat + pkill -f 'java -jar' + rm -rf ${BASEDIR}tmp/kieker-* + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}kieker.log + echo >>${BASEDIR}kieker.log + sync + sleep ${SLEEPTIME} + +done +zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat +rm -rf ${RESULTSDIR}stat/ +mv ${BASEDIR}kieker.log ${RESULTSDIR}kieker.log +[ -f ${RESULTSDIR}hotspot-1-${RECURSIONDEPTH}-1.log ] && grep "<task " ${RESULTSDIR}hotspot-*.log >${RESULTSDIR}log.log +[ -f ${BASEDIR}errorlog.txt ] && mv ${BASEDIR}errorlog.txt ${RESULTSDIR} + +## Generate Results file +# Timeseries +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-timeseries.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +configs.colors=c("black","red","blue","green","yellow","purple") +results.count=${TOTALCALLS} +tsconf.min=(${METHODTIME}/1000) +tsconf.max=(${METHODTIME}/1000)+40 +source("${RSCRIPTDIR}timeseries.r") +EOF +# Timeseries-Average +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-timeseries-average.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +configs.colors=c("black","red","blue","green","yellow","purple") +results.count=${TOTALCALLS} +tsconf.min=(${METHODTIME}/1000) +tsconf.max=(${METHODTIME}/1000)+40 +source("${RSCRIPTDIR}timeseries-average.r") +EOF +# Throughput +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-throughput.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +configs.colors=c("black","red","blue","green","yellow","purple") +results.count=${TOTALCALLS} +source("${RSCRIPTDIR}throughput.r") +EOF +# Throughput-Average +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-throughput-average.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +configs.colors=c("black","red","blue","green","yellow","purple") +results.count=${TOTALCALLS} +source("${RSCRIPTDIR}throughput-average.r") +EOF +# Bars +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-bars.pdf" +outtxt_fn="${RESULTSDIR}results-text.txt" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction") +results.count=${TOTALCALLS} +results.skip=${TOTALCALLS}/2 +bars.minval=(${METHODTIME}/1000) +bars.maxval=(${METHODTIME}/1000)+40 +source("${RSCRIPTDIR}bar.r") +EOF + +## Clean up raw results +zip -jqr ${RESULTSDIR}results.zip ${RAWFN}* +rm -f ${RAWFN}* +zip -jqr ${RESULTSDIR}worker.zip ${RESULTSDIR}worker*.log +rm -f ${RESULTSDIR}worker*.log +[ -f ${BASEDIR}nohup.out ] && mv ${BASEDIR}nohup.out ${RESULTSDIR} -- GitLab