diff --git a/bin/2014-icpe/benchmark-disk-writer-slow.sh b/bin/2014-icpe/benchmark-disk-writer-slow.sh index 1773b01f5d722e73e12e4677dfa830418605e132..a3250381b9ff12ff3d900d0f3692577ea42e5b86 100644 --- a/bin/2014-icpe/benchmark-disk-writer-slow.sh +++ b/bin/2014-icpe/benchmark-disk-writer-slow.sh @@ -1,286 +1,288 @@ #!/bin/bash -JAVABIN="/localhome/ffi/jdk1.7.0_25/bin/" +JAVA_BIN="/localhome/ffi/jdk1.7.0_25/bin/java" -RSCRIPTDIR=bin/icpe/r/ +R_SCRIPT_DIR=bin/icpe/r/ BASEDIR=./ -RESULTSDIR="${BASEDIR}tmp/results-benchmark-disk-slow/" +RESULTSDIR="${BASE_DIR}/tmp/results-benchmark-disk-slow/" -SLEEPTIME=30 ## 30 +SLEEP_TIME=30 ## 30 NUM_LOOPS=10 ## 10 THREADS=1 ## 1 -RECURSIONDEPTH=10 ## 10 -TOTALCALLS=2000000 ## 2000000 -METHODTIME=100 ## 100 +RECURSION_DEPTH=10 ## 10 +TOTAL_CALLS=2000000 ## 2000000 +METHOD_TIME=100 ## 100 -MOREPARAMS="" -#MOREPARAMS="--quickstart" +MORE_PARAMS="" +#MORE_PARAMS="--quickstart" -TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} ` +TIME=`expr ${METHOD_TIME} \* ${TOTAL_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_LOOPS} + ${SLEEP_TIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSION_DEPTH} + 50 \* ${TOTAL_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_LOOPS} ` echo "Experiment will take circa ${TIME} seconds." echo "Removing and recreating '$RESULTSDIR'" -(rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR} -mkdir ${RESULTSDIR}stat/ +(rm -rf ${RESULT_DIR}/) && mkdir ${RESULT_DIR}/ +mkdir ${RESULT_DIR}/stat/ # Clear kieker.log and initialize logging -rm -f ${BASEDIR}kieker.log -touch ${BASEDIR}kieker.log +rm -f ${BASE_DIR}/kieker.log +touch ${BASE_DIR}/kieker.log -RAWFN="${RESULTSDIR}raw" +RAWFN="${RESULT_DIR}/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" +JAVA_ARGS="-server" +JAVA_ARGS="${JAVA_ARGS} -d64" +JAVA_ARGS="${JAVA_ARGS} -Xms1G -Xmx4G" +JAVA_ARGS="${JAVA_ARGS} -verbose:gc -XX:+PrintCompilation" +#JAVA_ARGS="${JAVA_ARGS} -XX:+PrintInlining" +#JAVA_ARGS="${JAVA_ARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation" +#JAVA_ARGS="${JAVA_ARGS} -Djava.compiler=NONE" JAR="-jar dist/OverheadEvaluationMicrobenchmarkKieker.jar" -JAVAARGS_NOINSTR="${JAVAARGS}" -JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}lib/kieker-1.8-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_LOGGING1="${JAVAARGS_LTW} -Dkieker.monitoring.writer=kieker.monitoring.writer.filesystem.AsyncBinaryFsWriter -Dkieker.monitoring.writer.filesystem.AsyncBinaryFsWriter.customStoragePath=${BASEDIR}tmp -Dkieker.monitoring.writer.filesystem.AsyncBinaryFsWriter.QueueFullBehavior=0" -JAVAARGS_KIEKER_LOGGING2="${JAVAARGS_LTW} -Dkieker.monitoring.writer=kieker.monitoring.writer.filesystem.AsyncBinaryZipWriter -Dkieker.monitoring.writer.filesystem.AsyncBinaryZipWriter.customStoragePath=${BASEDIR}tmp -Dkieker.monitoring.writer.filesystem.AsyncBinaryZipWriter.QueueFullBehavior=0" -JAVAARGS_KIEKER_LOGGING3="${JAVAARGS_LTW} -Dkieker.monitoring.writer=kieker.monitoring.writer.filesystem.AsyncFsWriter -Dkieker.monitoring.writer.filesystem.AsyncFsWriter.customStoragePath=${BASEDIR}tmp -Dkieker.monitoring.writer.filesystem.AsyncFsWriter.QueueFullBehavior=0" +JAVA_ARGS_NOINSTR="${JAVA_ARGS}" +JAVA_ARGS_LTW="${JAVA_ARGS} -javaagent:${BASE_DIR}/lib/kieker-1.8-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" +JAVA_ARGS_KIEKER_DEACTV="${JAVA_ARGS_LTW} -Dkieker.monitoring.enabled=false -Dkieker.monitoring.writer=kieker.monitoring.writer.DummyWriter" +JAVA_ARGS_KIEKER_NOLOGGING="${JAVA_ARGS_LTW} -Dkieker.monitoring.writer=kieker.monitoring.writer.DummyWriter" +JAVA_ARGS_KIEKER_LOGGING1="${JAVA_ARGS_LTW} -Dkieker.monitoring.writer=kieker.monitoring.writer.filesystem.AsyncBinaryFsWriter -Dkieker.monitoring.writer.filesystem.AsyncBinaryFsWriter.customStoragePath=${BASE_DIR}/tmp -Dkieker.monitoring.writer.filesystem.AsyncBinaryFsWriter.QueueFullBehavior=0" +JAVA_ARGS_KIEKER_LOGGING2="${JAVA_ARGS_LTW} -Dkieker.monitoring.writer=kieker.monitoring.writer.filesystem.AsyncBinaryZipWriter -Dkieker.monitoring.writer.filesystem.AsyncBinaryZipWriter.customStoragePath=${BASE_DIR}/tmp -Dkieker.monitoring.writer.filesystem.AsyncBinaryZipWriter.QueueFullBehavior=0" +JAVA_ARGS_KIEKER_LOGGING3="${JAVA_ARGS_LTW} -Dkieker.monitoring.writer=kieker.monitoring.writer.filesystem.AsyncFsWriter -Dkieker.monitoring.writer.filesystem.AsyncFsWriter.customStoragePath=${BASE_DIR}/tmp -Dkieker.monitoring.writer.filesystem.AsyncFsWriter.QueueFullBehavior=0" ## 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 +uname -a >${RESULT_DIR}/configuration.txt +${JAVA_BIN} ${JAVA_ARGS} -version 2>> "${RESULT_DIR}/configuration.txt" +echo "JAVA_ARGS: ${JAVA_ARGS}" >> "${RESULT_DIR}/configuration.txt" +echo "" >> "${RESULT_DIR}/configuration.txt" +echo "Runtime: circa ${TIME} seconds" >> "${RESULT_DIR}/configuration.txt" +echo "" >> "${RESULT_DIR}/configuration.txt" +echo "SLEEP_TIME=${SLEEP_TIME}" >> "${RESULT_DIR}/configuration.txt" +echo "NUM_LOOPS=${NUM_LOOPS}" >> "${RESULT_DIR}/configuration.txt" +echo "TOTAL_CALLS=${TOTAL_CALLS}" >> "${RESULT_DIR}/configuration.txt" +echo "METHOD_TIME=${METHOD_TIME}" >> "${RESULT_DIR}/configuration.txt" +echo "THREADS=${THREADS}" >> "${RESULT_DIR}/configuration.txt" +echo "RECURSION_DEPTH=${RECURSION_DEPTH}" >> "${RESULT_DIR}/configuration.txt" sync ## Execute Benchmark for ((i=1;i<=${NUM_LOOPS};i+=1)); do - j=${RECURSIONDEPTH} + j=${RECURSION_DEPTH} k=0 echo "## Starting iteration ${i}/${NUM_LOOPS}" - echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASEDIR}kieker.log + echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASE_DIR}/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} \ + echo " # ${i}.${j}.${k} No instrumentation" >>${BASE_DIR}/kieker.log + mpstat 1 > ${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} ${JAVA_ARGS_NOINSTR} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ + --totalcalls ${TOTAL_CALLS} \ + --methodtime ${METHOD_TIME} \ --totalthreads ${THREADS} \ --recursiondepth ${j} \ - ${MOREPARAMS} + ${MORE_PARAMS} 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 + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >>${BASE_DIR}/kieker.log + echo >>${BASE_DIR}/kieker.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} # 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} \ + echo " # ${i}.${j}.${k} Deactivated probe" >>${BASE_DIR}/kieker.log + mpstat 1 > ${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} ${JAVA_ARGS_KIEKER_DEACTV} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ - --totalthreads ${THREADS} \ - --recursiondepth ${j} \ - ${MOREPARAMS} + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ + --total-threads ${THREADS} \ + --recursion-depth ${j} \ + ${MORE_PARAMS} 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 + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >>${BASE_DIR}/kieker.log + echo >>${BASE_DIR}/kieker.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} # 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} \ + echo " # ${i}.${j}.${k} No logging (null writer)" >>${BASE_DIR}/kieker.log + mpstat 1 > ${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} ${JAVA_ARGS_KIEKER_NOLOGGING} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ - --totalthreads ${THREADS} \ - --recursiondepth ${j} \ - ${MOREPARAMS} + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ + --total-threads ${THREADS} \ + --recursion-depth ${j} \ + ${MORE_PARAMS} 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 + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >>${BASE_DIR}/kieker.log + echo >>${BASE_DIR}/kieker.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} # Logging 1 k=`expr ${k} + 1` echo " # ${i}.${j}.${k} Logging 1" - echo " # ${i}.${j}.${k} Logging 1" >>${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_LOGGING1} ${JAR} \ + echo " # ${i}.${j}.${k} Logging 1" >>${BASE_DIR}/kieker.log + mpstat 1 > ${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} ${JAVA_ARGS_KIEKER_LOGGING1} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ - --totalthreads ${THREADS} \ - --recursiondepth ${j} \ - ${MOREPARAMS} + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ + --total-threads ${THREADS} \ + --recursion-depth ${j} \ + ${MORE_PARAMS} kill %mpstat kill %vmstat kill %iostat - 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 + rm -rf ${BASE_DIR}/tmp/kieker-* + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >>${BASE_DIR}/kieker.log + echo >>${BASE_DIR}/kieker.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} # Logging 2 k=`expr ${k} + 1` echo " # ${i}.${j}.${k} Logging 2" - echo " # ${i}.${j}.${k} Logging 2" >>${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_LOGGING2} ${JAR} \ + echo " # ${i}.${j}.${k} Logging 2" >>${BASE_DIR}/kieker.log + mpstat 1 > ${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} ${JAVA_ARGS_KIEKER_LOGGING2} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ - --totalthreads ${THREADS} \ - --recursiondepth ${j} \ - ${MOREPARAMS} + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ + --total-threads ${THREADS} \ + --recursion-depth ${j} \ + ${MORE_PARAMS} kill %mpstat kill %vmstat kill %iostat - 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 + rm -rf ${BASE_DIR}/tmp/kieker-* + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >>${BASE_DIR}/kieker.log + echo >>${BASE_DIR}/kieker.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} # Logging 3 k=`expr ${k} + 1` echo " # ${i}.${j}.${k} Logging 3" - echo " # ${i}.${j}.${k} Logging 3" >>${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_LOGGING3} ${JAR} \ + echo " # ${i}.${j}.${k} Logging 3" >>${BASE_DIR}/kieker.log + mpstat 1 > ${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} ${JAVA_ARGS_KIEKER_LOGGING3} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ - --totalthreads ${THREADS} \ - --recursiondepth ${j} \ - ${MOREPARAMS} + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ + --total-threads ${THREADS} \ + --recursion-depth ${j} \ + ${MORE_PARAMS} kill %mpstat kill %vmstat kill %iostat - 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 + rm -rf ${BASE_DIR}/tmp/kieker-* + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >>${BASE_DIR}/kieker.log + echo >>${BASE_DIR}/kieker.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} 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} +zip -jqr ${RESULT_DIR}/stat.zip ${RESULT_DIR}/stat +rm -rf ${RESULT_DIR}/stat/ +mv ${BASE_DIR}/kieker.log ${RESULT_DIR}/kieker.log +[ -f ${RESULT_DIR}/hotspot-1-${RECURSION_DEPTH}-1.log ] && grep "<task " ${RESULT_DIR}/hotspot-*.log >${RESULT_DIR}/log.log +[ -f ${BASE_DIR}/errorlog.txt ] && mv ${BASE_DIR}/errorlog.txt ${RESULT_DIR}/ ## Generate Results file # Timeseries R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-timeseries.pdf" +output_fn="${RESULT_DIR}/results-timeseries.pdf" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","Writer1","Writer2","Writer3") configs.colors=c("black","red","blue","green","purple","pink") -results.count=${TOTALCALLS} -tsconf.min=(${METHODTIME}/1000) -tsconf.max=(${METHODTIME}/1000)+200 -source("${RSCRIPTDIR}timeseries.r") +results.count=${TOTAL_CALLS} +tsconf.min=(${METHOD_TIME}/1000) +tsconf.max=(${METHOD_TIME}/1000)+200 +source("${R_SCRIPT_DIR}timeseries.r") EOF # Timeseries-Average R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-timeseries-average.pdf" +output_fn="${RESULT_DIR}/results-timeseries-average.pdf" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","Writer1","Writer2","Writer3") configs.colors=c("black","red","blue","green","purple","pink") -results.count=${TOTALCALLS} -tsconf.min=(${METHODTIME}/1000) -tsconf.max=(${METHODTIME}/1000)+200 -source("${RSCRIPTDIR}timeseries-average.r") +results.count=${TOTAL_CALLS} +tsconf.min=(${METHOD_TIME}/1000) +tsconf.max=(${METHOD_TIME}/1000)+200 +source("${R_SCRIPT_DIR}timeseries-average.r") EOF # Throughput R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-throughput.pdf" +output_fn="${RESULT_DIR}/results-throughput.pdf" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","Writer1","Writer2","Writer3") configs.colors=c("black","red","blue","green","purple","pink") -results.count=${TOTALCALLS} -source("${RSCRIPTDIR}throughput.r") +results.count=${TOTAL_CALLS} +source("${R_SCRIPT_DIR}throughput.r") EOF # Throughput-Average R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-throughput-average.pdf" +output_fn="${RESULT_DIR}/results-throughput-average.pdf" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","Writer1","Writer2","Writer3") configs.colors=c("black","red","blue","green","purple","pink") -results.count=${TOTALCALLS} -source("${RSCRIPTDIR}throughput-average.r") +results.count=${TOTAL_CALLS} +source("${R_SCRIPT_DIR}throughput-average.r") EOF # Bars R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-bars.pdf" -outtxt_fn="${RESULTSDIR}results-text.txt" +output_fn="${RESULT_DIR}/results-bars.pdf" +outtxt_fn="${RESULT_DIR}/results-text.txt" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","Writer1","Writer2","Writer3") -results.count=${TOTALCALLS} -results.skip=${TOTALCALLS}/2 -bars.minval=(${METHODTIME}/1000) -bars.maxval=(${METHODTIME}/1000)+200 -source("${RSCRIPTDIR}bar.r") +results.count=${TOTAL_CALLS} +results.skip=${TOTAL_CALLS}/2 +bars.minval=(${METHOD_TIME}/1000) +bars.maxval=(${METHOD_TIME}/1000)+200 +source("${R_SCRIPT_DIR}bar.r") EOF ## Clean up raw results -zip -jqr ${RESULTSDIR}results.zip ${RAWFN}* +zip -jqr ${RESULT_DIR}/results.zip ${RAWFN}* rm -f ${RAWFN}* -[ -f ${BASEDIR}nohup.out ] && mv ${BASEDIR}nohup.out ${RESULTSDIR} +[ -f ${BASE_DIR}/nohup.out ] && mv ${BASE_DIR}/nohup.out ${RESULT_DIR} + +# end diff --git a/bin/2014-icpe/benchmark-tcp-ffi.sh b/bin/2014-icpe/benchmark-tcp-ffi.sh index 8658a54ae1f20c3e042314de22dc9e348e80ded4..ea942687d5406f1f5e570c559da46ad051ff668c 100644 --- a/bin/2014-icpe/benchmark-tcp-ffi.sh +++ b/bin/2014-icpe/benchmark-tcp-ffi.sh @@ -1,232 +1,232 @@ #!/bin/bash -JAVABIN="/localhome/ffi/jdk1.7.0_25/bin/" +JAVA_BIN="/localhome/ffi/jdk1.7.0_25/bin/java" -RSCRIPTDIR=bin/icpe/r/ -BASEDIR=./ -RESULTSDIR="${BASEDIR}tmp/results-benchmark-tcp-ffi/" +R_SCRIPT_DIR=bin/icpe/r +BASE_DIR=. +RESULT_DIR="${BASE_DIR}/tmp/results-benchmark-tcp-ffi/" -SLEEPTIME=30 ## 30 +SLEEP_TIME=30 ## 30 NUM_LOOPS=10 ## 10 THREADS=1 ## 1 -RECURSIONDEPTH=10 ## 10 -TOTALCALLS=20000000 ## 20000000 -METHODTIME=0 ## 0 +RECURSION_DEPTH=10 ## 10 +TOTAL_CALLS=20000000 ## 20000000 +METHOD_TIME=0 ## 0 -MOREPARAMS="" -#MOREPARAMS="--quickstart" +MORE_PARAMS="" +#MORE_PARAMS="--quickstart" -TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} ` +TIME=`expr ${METHOD_TIME} \* ${TOTAL_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_LOOPS} + ${SLEEP_TIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSION_DEPTH} + 50 \* ${TOTAL_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${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" +(rm -rf "${RESULT_DIR}") && mkdir "${RESULT_DIR}" +mkdir "${RESULT_DIR}/stat" + +RAWFN="${RESULT_DIR}/raw" + +JAVA_ARGS="-server" +JAVA_ARGS="${JAVA_ARGS} -d64" +JAVA_ARGS="${JAVA_ARGS} -Xms1G -Xmx4G" +JAVA_ARGS="${JAVA_ARGS} -verbose:gc -XX:+PrintCompilation" +#JAVA_ARGS="${JAVA_ARGS} -XX:+PrintInlining" +#JAVA_ARGS="${JAVA_ARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation" +#JAVA_ARGS="${JAVA_ARGS} -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" +JAVA_ARGS_NOINSTR="${JAVA_ARGS}" +JAVA_ARGS_LTW="${JAVA_ARGS} -javaagent:${BASE_DIR}/lib/aspectjweaver.jar -Dorg.aspectj.weaver.showWeaveInfo=false -Daj.weaving.verbose=false" ## 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 +uname -a >${RESULT_DIR}/configuration.txt +${JAVA_BIN} ${JAVA_ARGS} -version 2 >> "${RESULT_DIR}/configuration.txt" +echo "JAVA_ARGS: ${JAVA_ARGS}" >> "${RESULT_DIR}/configuration.txt" +echo "" >> "${RESULT_DIR}/configuration.txt" +echo "Runtime: circa ${TIME} seconds" >> "${RESULT_DIR}/configuration.txt" +echo "" >> "${RESULT_DIR}/configuration.txt" +echo "SLEEP_TIME=${SLEEP_TIME}" >> "${RESULT_DIR}/configuration.txt" +echo "NUM_LOOPS=${NUM_LOOPS}" >> "${RESULT_DIR}/configuration.txt" +echo "TOTAL_CALLS=${TOTAL_CALLS}" >> "${RESULT_DIR}/configuration.txt" +echo "METHOD_TIME=${METHOD_TIME}" >> "${RESULT_DIR}/configuration.txt" +echo "THREADS=${THREADS}" >> "${RESULT_DIR}/configuration.txt" +echo "RECURSION_DEPTH=${RECURSION_DEPTH}" >> "${RESULT_DIR}/configuration.txt" sync ## Execute Benchmark for ((i=1;i<=${NUM_LOOPS};i+=1)); do - j=${RECURSIONDEPTH} + j=${RECURSION_DEPTH} k=0 echo "## Starting iteration ${i}/${NUM_LOOPS}" # No instrumentation k=`expr ${k} + 1` echo " # ${i}.${j}.${k} No instrumentation" - 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} ${JARNoInstru} \ + mpstat 1 > ${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} ${JAVA_ARGS_NOINSTR} ${JARNoInstru} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ - --totalthreads ${THREADS} \ - --recursiondepth ${j} \ - ${MOREPARAMS} + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ + --total-threads ${THREADS} \ + --recursion-depth ${j} \ + ${MORE_PARAMS} kill %mpstat kill %vmstat kill %iostat - [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} # Deactivated Probe k=`expr ${k} + 1` echo " # ${i}.${j}.${k} Deactivated Probe" - 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/explorviz_worker.jar >${RESULTSDIR}worker-${i}-${j}-${k}.log & + mpstat 1 > ${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} -jar dist/explorviz_worker.jar >${RESULT_DIR}/worker-${i}-${j}-${k}.log & sleep 5 - ${JAVABIN}java ${JAVAARGS_LTW} ${JARDeactived} \ + ${JAVA_BIN} ${JAVA_ARGS_LTW} ${JARDeactived} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ - --totalthreads ${THREADS} \ - --recursiondepth ${j} \ - ${MOREPARAMS} + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ + --total-threads ${THREADS} \ + --recursion-depth ${j} \ + ${MORE_PARAMS} 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 + rm -rf ${BASE_DIR}/tmp/kieker-* + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} # Collecting k=`expr ${k} + 1` echo " # ${i}.${j}.${k} Collecting" - 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/explorviz_worker.jar >${RESULTSDIR}worker-${i}-${j}-${k}.log & + mpstat 1 > ${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} -jar dist/explorviz_worker.jar >${RESULT_DIR}/worker-${i}-${j}-${k}.log & sleep 5 - ${JAVABIN}java ${JAVAARGS_LTW} ${JARCollecting} \ + ${JAVA_BIN} ${JAVA_ARGS_LTW} ${JARCollecting} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ - --totalthreads ${THREADS} \ - --recursiondepth ${j} \ - ${MOREPARAMS} + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ + --total-threads ${THREADS} \ + --recursion-depth ${j} \ + ${MORE_PARAMS} 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 + rm -rf ${BASE_DIR}/tmp/kieker-* + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} # Logging k=`expr ${k} + 1` echo " # ${i}.${j}.${k} Logging" - 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/explorviz_worker.jar >${RESULTSDIR}worker-${i}-${j}-${k}.log & + mpstat 1 > ${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} -jar dist/explorviz_worker.jar >${RESULT_DIR}/worker-${i}-${j}-${k}.log & sleep 5 - ${JAVABIN}java ${JAVAARGS_LTW} ${JARNORMAL} \ + ${JAVA_BIN} ${JAVA_ARGS_LTW} ${JARNORMAL} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ - --totalthreads ${THREADS} \ - --recursiondepth ${j} \ - ${MOREPARAMS} + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ + --total-threads ${THREADS} \ + --recursion-depth ${j} \ + ${MORE_PARAMS} 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 + rm -rf ${BASE_DIR}/tmp/kieker-* + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} 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} +zip -jqr ${RESULT_DIR}/stat.zip ${RESULT_DIR}/stat +rm -rf ${RESULT_DIR}/stat/ +[ -f ${RESULT_DIR}/hotspot-1-${RECURSION_DEPTH}-1.log ] && grep "<task " ${RESULT_DIR}/hotspot-*.log >${RESULT_DIR}/log.log +[ -f ${BASE_DIR}/errorlog.txt ] && mv ${BASE_DIR}/errorlog.txt ${RESULT_DIR}/ ## Generate Results file # Timeseries R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-timeseries.pdf" +output_fn="${RESULT_DIR}/results-timeseries.pdf" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer") configs.colors=c("black","red","blue","green") -results.count=${TOTALCALLS} -tsconf.min=(${METHODTIME}/1000) -tsconf.max=(${METHODTIME}/1000)+40 -source("${RSCRIPTDIR}timeseries.r") +results.count=${TOTAL_CALLS} +tsconf.min=(${METHOD_TIME}/1000) +tsconf.max=(${METHOD_TIME}/1000)+40 +source("${R_SCRIPT_DIR}timeseries.r") EOF # Timeseries-Average R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-timeseries-average.pdf" +output_fn="${RESULT_DIR}/results-timeseries-average.pdf" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer") configs.colors=c("black","red","blue","green") -results.count=${TOTALCALLS} -tsconf.min=(${METHODTIME}/1000) -tsconf.max=(${METHODTIME}/1000)+40 -source("${RSCRIPTDIR}timeseries-average.r") +results.count=${TOTAL_CALLS} +tsconf.min=(${METHOD_TIME}/1000) +tsconf.max=(${METHOD_TIME}/1000)+40 +source("${R_SCRIPT_DIR}timeseries-average.r") EOF # Throughput R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-throughput.pdf" +output_fn="${RESULT_DIR}/results-throughput.pdf" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer") configs.colors=c("black","red","blue","green") -results.count=${TOTALCALLS} -source("${RSCRIPTDIR}throughput.r") +results.count=${TOTAL_CALLS} +source("${R_SCRIPT_DIR}throughput.r") EOF # Throughput-Average R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-throughput-average.pdf" +output_fn="${RESULT_DIR}/results-throughput-average.pdf" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer") configs.colors=c("black","red","blue","green") -results.count=${TOTALCALLS} -source("${RSCRIPTDIR}throughput-average.r") +results.count=${TOTAL_CALLS} +source("${R_SCRIPT_DIR}throughput-average.r") EOF # Bars R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-bars.pdf" -outtxt_fn="${RESULTSDIR}results-text.txt" +output_fn="${RESULT_DIR}/results-bars.pdf" +outtxt_fn="${RESULT_DIR}/results-text.txt" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer") -results.count=${TOTALCALLS} -results.skip=${TOTALCALLS}/2 -bars.minval=(${METHODTIME}/1000) -bars.maxval=(${METHODTIME}/1000)+40 -source("${RSCRIPTDIR}bar.r") +results.count=${TOTAL_CALLS} +results.skip=${TOTAL_CALLS}/2 +bars.minval=(${METHOD_TIME}/1000) +bars.maxval=(${METHOD_TIME}/1000)+40 +source("${R_SCRIPT_DIR}bar.r") EOF ## Clean up raw results -zip -jqr ${RESULTSDIR}results.zip ${RAWFN}* +zip -jqr ${RESULT_DIR}/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} +zip -jqr ${RESULT_DIR}/worker.zip ${RESULT_DIR}/worker*.log +rm -f ${RESULT_DIR}/worker*.log +[ -f ${BASE_DIR}/nohup.out ] && mv ${BASE_DIR}/nohup.out ${RESULT_DIR}/ diff --git a/bin/2014-icpe/benchmark-tcp-kieker.sh b/bin/2014-icpe/benchmark-tcp-kieker.sh index 1e890544fd3b3362047c318a5545fcfb41edeaf2..7805e3855cd35ecddb9091bdfcc34157559e32b2 100644 --- a/bin/2014-icpe/benchmark-tcp-kieker.sh +++ b/bin/2014-icpe/benchmark-tcp-kieker.sh @@ -4,238 +4,240 @@ JAVABIN="/localhome/ffi/jdk1.7.0_25/bin/" RSCRIPTDIR=bin/icpe/r/ BASEDIR=./ -RESULTSDIR="${BASEDIR}tmp/results-benchmark-tcp-kieker/" +RESULTSDIR="${BASE_DIR}/tmp/results-benchmark-tcp-kieker/" -SLEEPTIME=30 ## 30 +SLEEP_TIME=30 ## 30 NUM_LOOPS=10 ## 10 THREADS=1 ## 1 -RECURSIONDEPTH=10 ## 10 -TOTALCALLS=20000000 ## 20000000 -METHODTIME=0 ## 0 +RECURSION_DEPTH=10 ## 10 +TOTAL_CALLS=20000000 ## 20000000 +METHOD_TIME=0 ## 0 -MOREPARAMS="" -#MOREPARAMS="--quickstart" +MORE_PARAMS="" +#MORE_PARAMS="--quickstart" -TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} ` +TIME=`expr ${METHOD_TIME} \* ${TOTAL_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_LOOPS} + ${SLEEP_TIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSION_DEPTH} + 50 \* ${TOTAL_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_LOOPS} ` echo "Experiment will take circa ${TIME} seconds." -echo "Removing and recreating '$RESULTSDIR'" -(rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR} -mkdir ${RESULTSDIR}stat/ +echo "Removing and recreating '${RESULT_DIR}'" +(rm -rf "${RESULT_DIR}") && "mkdir ${RESULT_DIR}" +mkdir -p "${RESULT_DIR}/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" +rm -f ${BASE_DIR}/kieker.log +touch ${BASE_DIR}/kieker.log + +RAWFN="${RESULT_DIR}/raw" + +JAVA_ARGS="-server" +JAVA_ARGS="${JAVA_ARGS} -d64" +JAVA_ARGS="${JAVA_ARGS} -Xms1G -Xmx4G" +JAVA_ARGS="${JAVA_ARGS} -verbose:gc -XX:+PrintCompilation" +#JAVA_ARGS="${JAVA_ARGS} -XX:+PrintInlining" +#JAVA_ARGS="${JAVA_ARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation" +#JAVA_ARGS="${JAVA_ARGS} -Djava.compiler=NONE" JAR="-jar dist/OverheadEvaluationMicrobenchmarkKieker.jar" -JAVAARGS_NOINSTR="${JAVAARGS}" -JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}lib/kieker-1.8-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" +JAVA_ARGS_NOINSTR="${JAVA_ARGS}" +JAVA_ARGS_LTW="${JAVA_ARGS} -javaagent:${BASE_DIR}/lib/kieker-1.8-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" +JAVA_ARGS_KIEKER_DEACTV="${JAVA_ARGS_LTW} -Dkieker.monitoring.enabled=false -Dkieker.monitoring.writer=kieker.monitoring.writer.DummyWriter" +JAVA_ARGS_KIEKER_NOLOGGING="${JAVA_ARGS_LTW} -Dkieker.monitoring.writer=kieker.monitoring.writer.DummyWriter" +JAVA_ARGS_KIEKER_LOGGING="${JAVA_ARGS_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 +uname -a >${RESULT_DIR}/configuration.txt +${JAVA_BIN} ${JAVA_ARGS} -version 2>> "${RESULT_DIR}/configuration.txt" +echo "JAVA_ARGS: ${JAVA_ARGS}" >> "${RESULT_DIR}/configuration.txt" +echo "" >> "${RESULT_DIR}/configuration.txt" +echo "Runtime: circa ${TIME} seconds" >> "${RESULT_DIR}/configuration.txt" +echo "" >> "${RESULT_DIR}/configuration.txt" +echo "SLEEP_TIME=${SLEEP_TIME}" >> "${RESULT_DIR}/configuration.txt" +echo "NUM_LOOPS=${NUM_LOOPS}" >> "${RESULT_DIR}/configuration.txt" +echo "TOTAL_CALLS=${TOTAL_CALLS}" >> "${RESULT_DIR}/configuration.txt" +echo "METHOD_TIME=${METHOD_TIME}" >> "${RESULT_DIR}/configuration.txt" +echo "THREADS=${THREADS}" >> "${RESULT_DIR}/configuration.txt" +echo "RECURSION_DEPTH=${RECURSION_DEPTH}" >> "${RESULT_DIR}/configuration.txt" sync ## Execute Benchmark for ((i=1;i<=${NUM_LOOPS};i+=1)); do - j=${RECURSIONDEPTH} + j=${RECURSION_DEPTH} k=0 echo "## Starting iteration ${i}/${NUM_LOOPS}" - echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASEDIR}kieker.log + echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASE_DIR}/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} \ + echo " # ${i}.${j}.${k} No instrumentation" >>${BASE_DIR}/kieker.log + mpstat 1 > ${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} ${JAVA_ARGS_NOINSTR} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ + --totalcalls ${TOTAL_CALLS} \ + --methodtime ${METHOD_TIME} \ --totalthreads ${THREADS} \ --recursiondepth ${j} \ - ${MOREPARAMS} + ${MORE_PARAMS} 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 + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >>${BASE_DIR}/kieker.log + echo >>${BASE_DIR}/kieker.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} # 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} \ + echo " # ${i}.${j}.${k} Deactivated probe" >>${BASE_DIR}/kieker.log + mpstat 1 > ${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} ${JAVA_ARGS_KIEKER_DEACTV} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ - --totalthreads ${THREADS} \ - --recursiondepth ${j} \ - ${MOREPARAMS} + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ + --total-threads ${THREADS} \ + --recursion-depth ${j} \ + ${MORE_PARAMS} 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 + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >>${BASE_DIR}/kieker.log + echo >>${BASE_DIR}/kieker.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} # 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} \ + echo " # ${i}.${j}.${k} No logging (null writer)" >>${BASE_DIR}/kieker.log + mpstat 1 > ${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} ${JAVA_ARGS_KIEKER_NOLOGGING} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ - --totalthreads ${THREADS} \ - --recursiondepth ${j} \ - ${MOREPARAMS} + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ + --total-threads ${THREADS} \ + --recursion-depth ${j} \ + ${MORE_PARAMS} 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 + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >> "${BASE_DIR}/kieker.log" + echo >> "${BASE_DIR}/kieker.log" sync - sleep ${SLEEPTIME} + sleep "${SLEEP_TIME}" # 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/KiekerTCPReader.jar >${RESULTSDIR}worker-${i}-${j}-${k}.log & + echo " # ${i}.${j}.${k} Logging" >>${BASE_DIR}/kieker.log + mpstat 1 > "${RESULT_DIR}/stat/mpstat-${i}-${j}-${k}.txt & + vmstat 1 > ${RESULT_DIR}/stat/vmstat-${i}-${j}-${k}.txt & + iostat -xn 10 > ${RESULT_DIR}/stat/iostat-${i}-${j}-${k}.txt & + ${JAVA_BIN} -jar dist/KiekerTCPReader.jar >${RESULT_DIR}/worker-${i}-${j}-${k}.log & sleep 5 - ${JAVABIN}java ${JAVAARGS_KIEKER_LOGGING} ${JAR} \ + ${JAVA_BIN} ${JAVA_ARGS_KIEKER_LOGGING} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ - --totalthreads ${THREADS} \ - --recursiondepth ${j} \ - ${MOREPARAMS} + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ + --total-threads ${THREADS} \ + --recursion-depth ${j} \ + ${MORE_PARAMS} 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 + rm -rf ${BASE_DIR}/tmp/kieker-* + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >>${BASE_DIR}/kieker.log + echo >>${BASE_DIR}/kieker.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} 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} +zip -jqr ${RESULT_DIR}/stat.zip ${RESULT_DIR}/stat +rm -rf ${RESULT_DIR}/stat/ +mv ${BASE_DIR}/kieker.log ${RESULT_DIR}/kieker.log +[ -f ${RESULT_DIR}/hotspot-1-${RECURSION_DEPTH}-1.log ] && grep "<task " ${RESULT_DIR}/hotspot-*.log >${RESULT_DIR}/log.log +[ -f ${BASE_DIR}/errorlog.txt ] && mv ${BASE_DIR}/errorlog.txt ${RESULT_DIR}/ ## Generate Results file # Timeseries R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-timeseries.pdf" +output_fn="${RESULT_DIR}/results-timeseries.pdf" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer") configs.colors=c("black","red","blue","green") -results.count=${TOTALCALLS} -tsconf.min=(${METHODTIME}/1000) -tsconf.max=(${METHODTIME}/1000)+200 +results.count=${TOTAL_CALLS} +tsconf.min=(${METHOD_TIME}/1000) +tsconf.max=(${METHOD_TIME}/1000)+200 source("${RSCRIPTDIR}timeseries.r") EOF # Timeseries-Average R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-timeseries-average.pdf" +output_fn="${RESULT_DIR}/results-timeseries-average.pdf" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer") configs.colors=c("black","red","blue","green") -results.count=${TOTALCALLS} -tsconf.min=(${METHODTIME}/1000) -tsconf.max=(${METHODTIME}/1000)+200 +results.count=${TOTAL_CALLS} +tsconf.min=(${METHOD_TIME}/1000) +tsconf.max=(${METHOD_TIME}/1000)+200 source("${RSCRIPTDIR}timeseries-average.r") EOF # Throughput R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-throughput.pdf" +output_fn="${RESULT_DIR}/results-throughput.pdf" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer") configs.colors=c("black","red","blue","green") -results.count=${TOTALCALLS} +results.count=${TOTAL_CALLS} source("${RSCRIPTDIR}throughput.r") EOF # Throughput-Average R --vanilla --silent <<EOF results_fn="${RAWFN}" -output_fn="${RESULTSDIR}results-throughput-average.pdf" +output_fn="${RESULT_DIR}/results-throughput-average.pdf" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer") configs.colors=c("black","red","blue","green") -results.count=${TOTALCALLS} +results.count=${TOTAL_CALLS} 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" +output_fn="${RESULT_DIR}/results-bars.pdf" +outtxt_fn="${RESULT_DIR}/results-text.txt" configs.loop=${NUM_LOOPS} -configs.recursion=c(${RECURSIONDEPTH}) +configs.recursion=c(${RECURSION_DEPTH}) configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer") -results.count=${TOTALCALLS} -results.skip=${TOTALCALLS}/2 -bars.minval=(${METHODTIME}/1000) -bars.maxval=(${METHODTIME}/1000)+200 +results.count=${TOTAL_CALLS} +results.skip=${TOTAL_CALLS}/2 +bars.minval=(${METHOD_TIME}/1000) +bars.maxval=(${METHOD_TIME}/1000)+200 source("${RSCRIPTDIR}bar.r") EOF ## Clean up raw results -zip -jqr ${RESULTSDIR}results.zip ${RAWFN}* +zip -jqr ${RESULT_DIR}/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} +zip -jqr ${RESULT_DIR}/worker.zip ${RESULT_DIR}/worker*.log +rm -f ${RESULT_DIR}/worker*.log +[ -f ${BASE_DIR}/nohup.out ] && mv ${BASE_DIR}/nohup.out "${RESULT_DIR}" + +# end diff --git a/frameworks/Kieker/benchmark.sh b/frameworks/Kieker/benchmark.sh index af95c4ac5aad0cc8da9a44d1c9d6d25eca5652c5..c90f325b2b44a9278d04c6af8db58db8ed0753c8 100755 --- a/frameworks/Kieker/benchmark.sh +++ b/frameworks/Kieker/benchmark.sh @@ -16,7 +16,12 @@ else exit 1 fi -source ../common-functions.sh +if [ -f "${BASE_DIR}/config" ] ; then + . "${BASE_DIR}../common-functions.sh" +else + echo "Missing configuration: ${BASE_DIR}/common-functions.sh" + exit 1 +fi getKiekerAgent @@ -136,7 +141,7 @@ function execute-experiment() { echo ${BENCHMARK_OPTS}" -jar MooBench.jar" - ${JAVABIN}java ${BENCHMARK_OPTS} -jar MooBench.jar \ + ${JAVA_BIN} ${BENCHMARK_OPTS} -jar MooBench.jar \ --application moobench.application.MonitoredClassSimple \ --output-filename ${RAWFN}-${loop}-${recursion}-${index}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ diff --git a/frameworks/Kieker/run-benchmark.sh b/frameworks/Kieker/run-benchmark.sh index b80da7c8f2ae923edcbbd11ed758c27c3a1d94f3..cb3aaf1de2efce978cb47846ad47843b1861ca84 100755 --- a/frameworks/Kieker/run-benchmark.sh +++ b/frameworks/Kieker/run-benchmark.sh @@ -15,10 +15,16 @@ else echo "Missing configuration: ${BASE_DIR}/common-functions" exit 1 fi +if [ -f "${BASE_DIR}/../common-functions.sh" ] ; then + . ${BASE_DIR}/../common-functions.sh +else + echo "Missing configuration: ${BASE_DIR}/../common-functions.sh" + exit 1 +fi ## setup -export RESULT_FILE="${BASE_DIR}/results-kieker/results-text.csv" +export RESULT_FILE="${RESULT_DIR}/results-text.csv" COLLECTED_DATA_FILE="${BASE_DIR}/results.csv" BENCHMARK="${BASE_DIR}/benchmark.sh" @@ -34,7 +40,7 @@ tar -xvpf ${BASE_DIR}/../../../tools/receiver/build/distributions/receiver.tar tar -xvpf ${BASE_DIR}/../../../tools/compile-results/build/distributions/compile-results.tar # Create benchmark results -mkdir -p ${BASE_DIR}/results-kieker +mkdir -p ${RESULT_DIR} rm -f ${COLLECTED_DATA_FILE} diff --git a/frameworks/OpenTelemetry/benchmark.sh b/frameworks/OpenTelemetry/benchmark.sh index 0d7173ba7a954cd3d4b1edb8ddae16a2d2f6a5a2..48c01758a96c684a4f012d2e18c6568c3e97eb2b 100755 --- a/frameworks/OpenTelemetry/benchmark.sh +++ b/frameworks/OpenTelemetry/benchmark.sh @@ -13,7 +13,7 @@ function startJaeger { } function cleanup { - [ -f ${BASE_DIR}hotspot.log ] && mv ${BASE_DIR}hotspot.log ${RESULTS_DIR}hotspot-${i}-$RECURSION_DEPTH-${k}.log + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULTS_DIR}/hotspot-${i}-$RECURSION_DEPTH-${k}.log echo >>${BASE_DIR}/OpenTelemetry.log echo >>${BASE_DIR}/OpenTelemetry.log sync @@ -24,13 +24,13 @@ function runNoInstrumentation { # No instrumentation echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/OpenTelemetry.log - ${JAVABIN}java ${JAVAARGS_NOINSTR} ${JAR} \ + ${JAVA_BIN} ${JAVA_ARGS_NOINSTR} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ --method-time ${METHOD_TIME} \ --total-threads ${THREADS} \ --recursion-depth $RECURSION_DEPTH \ - ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt + ${MORE_PARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt } function runOpenTelemetryNoLogging { @@ -38,13 +38,13 @@ function runOpenTelemetryNoLogging { k=`expr ${k} + 1` echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/OpenTelemetry.log - ${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_LOGGING_DEACTIVATED} ${JAR} \ + ${JAVA_BIN} ${JAVA_ARGS_OPENTELEMETRY_LOGGING_DEACTIVATED} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ --method-time ${METHOD_TIME} \ --total-threads ${THREADS} \ --recursion-depth $RECURSION_DEPTH \ - ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt + ${MORE_PARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt } function runOpenTelemetryLogging { @@ -52,13 +52,13 @@ function runOpenTelemetryLogging { k=`expr ${k} + 1` echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/OpenTelemetry.log - ${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_LOGGING} ${JAR} \ + ${JAVA_BIN} ${JAVA_ARGS_OPENTELEMETRY_LOGGING} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ --method-time ${METHOD_TIME} \ --total-threads ${THREADS} \ --recursion-depth $RECURSION_DEPTH \ - ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt + ${MORE_PARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt if [ ! "$DEBUG" = true ] then echo "DEBUG is $DEBUG, deleting opentelemetry logging file" @@ -72,13 +72,13 @@ function runOpenTelemetryZipkin { startZipkin echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/OpenTelemetry.log - ${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_ZIPKIN} ${JAR} \ + ${JAVA_BIN} ${JAVA_ARGS_OPENTELEMETRY_ZIPKIN} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ --method-time ${METHOD_TIME} \ --total-threads ${THREADS} \ --recursion-depth $RECURSION_DEPTH \ - ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt + ${MORE_PARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt stopBackgroundProcess sleep $SLEEP_TIME } @@ -89,13 +89,13 @@ function runOpenTelemetryJaeger { startJaeger echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/OpenTelemetry.log - ${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_JAEGER} ${JAR} \ + ${JAVA_BIN} ${JAVA_ARGS_OPENTELEMETRY_JAEGER} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ --method-time ${METHOD_TIME} \ --total-threads ${THREADS} \ --recursion-depth $RECURSION_DEPTH \ - ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt + ${MORE_PARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt stopBackgroundProcess sleep $SLEEP_TIME } @@ -106,18 +106,18 @@ function runOpenTelemetryPrometheus { startPrometheus echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/OpenTelemetry.log - ${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_PROMETHEUS} ${JAR} \ + ${JAVA_BIN} ${JAVA_ARGS_OPENTELEMETRY_PROMETHEUS} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ --method-time ${METHOD_TIME} \ --total-threads ${THREADS} \ --recursion-depth $RECURSION_DEPTH \ - ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt + ${MORE_PARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt stopBackgroundProcess sleep $SLEEP_TIME } -JAVABIN="" +JAVA_BIN="" BASE_DIR=$(pwd) RSCRIPT_PATH="../stats.csv.r" @@ -125,8 +125,8 @@ RSCRIPT_PATH="../stats.csv.r" source ../common-functions.sh source labels.sh -#MOREPARAMS="--quickstart" -MOREPARAMS="--application moobench.application.MonitoredClassSimple ${MOREPARAMS}" +#MORE_PARAMS="--quickstart" +MORE_PARAMS="--application moobench.application.MonitoredClassSimple ${MOREPARAMS}" TIME=`expr ${METHOD_TIME} \* ${TOTAL_NUM_OF_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_OF_LOOPS} + ${SLEEP_TIME} \* 4 \* ${NUM_OF_LOOPS} \* ${RECURSION_DEPTH} + 50 \* ${TOTAL_NUM_OF_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_OF_LOOPS} ` echo "Experiment will take circa ${TIME} seconds." @@ -139,23 +139,23 @@ echo "Cleaning and recreating '$RESULTS_DIR'" rm -f ${BASE_DIR}/OpenTelemetry.log touch ${BASE_DIR}/OpenTelemetry.log -JAVAARGS="-server" -JAVAARGS="${JAVAARGS} " -JAVAARGS="${JAVAARGS} -Xms1G -Xmx2G" -JAVAARGS="${JAVAARGS} -verbose:gc " +JAVA_ARGS="-server" +JAVA_ARGS="${JAVA_ARGS} " +JAVA_ARGS="${JAVA_ARGS} -Xms1G -Xmx2G" +JAVA_ARGS="${JAVA_ARGS} -verbose:gc " JAR="-jar MooBench.jar" checkMoobenchApplication getOpentelemetryAgent -JAVAARGS_NOINSTR="${JAVAARGS}" -JAVAARGS_OPENTELEMETRY_BASIC="${JAVAARGS} -javaagent:${BASE_DIR}/lib/opentelemetry-javaagent-all.jar -Dotel.resource.attributes=service.name=moobench -Dotel.instrumentation.methods.include=moobench.application.MonitoredClassSimple[monitoredMethod];moobench.application.MonitoredClassThreaded[monitoredMethod]" -JAVAARGS_OPENTELEMETRY_LOGGING_DEACTIVATED="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=logging -Dotel.traces.sampler=always_off" -JAVAARGS_OPENTELEMETRY_LOGGING="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=logging" -JAVAARGS_OPENTELEMETRY_ZIPKIN="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=zipkin -Dotel.metrics.exporter=none" -JAVAARGS_OPENTELEMETRY_JAEGER="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=none -Dotel.traces.exporter=jaeger" -JAVAARGS_OPENTELEMETRY_PROMETHEUS="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=none -Dotel.metrics.exporter=prometheus" +JAVA_ARGS_NOINSTR="${JAVAARGS}" +JAVA_ARGS_OPENTELEMETRY_BASIC="${JAVAARGS} -javaagent:${BASE_DIR}/lib/opentelemetry-javaagent-all.jar -Dotel.resource.attributes=service.name=moobench -Dotel.instrumentation.methods.include=moobench.application.MonitoredClassSimple[monitoredMethod];moobench.application.MonitoredClassThreaded[monitoredMethod]" +JAVA_ARGS_OPENTELEMETRY_LOGGING_DEACTIVATED="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=logging -Dotel.traces.sampler=always_off" +JAVA_ARGS_OPENTELEMETRY_LOGGING="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=logging" +JAVA_ARGS_OPENTELEMETRY_ZIPKIN="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=zipkin -Dotel.metrics.exporter=none" +JAVA_ARGS_OPENTELEMETRY_JAEGER="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=none -Dotel.traces.exporter=jaeger" +JAVA_ARGS_OPENTELEMETRY_PROMETHEUS="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=none -Dotel.metrics.exporter=prometheus" writeConfiguration @@ -192,6 +192,6 @@ cleanup-results #zip -jqr ${RESULTS_DIR}stat.zip ${RESULTS_DIR}stat #rm -rf ${RESULTS_DIR}stat/ mv ${BASE_DIR}/OpenTelemetry.log ${RESULTS_DIR}/OpenTelemetry.log -[ -f ${RESULTS_DIR}hotspot-1-${RECURSION_DEPTH}-1.log ] && grep "<task " ${RESULTS_DIR}hotspot-*.log >${RESULTS_DIR}log.log -[ -f ${BASE_DIR}errorlog.txt ] && mv ${BASE_DIR}errorlog.txt ${RESULTS_DIR} +[ -f "${RESULTS_DIR}/hotspot-1-${RECURSION_DEPTH}-1.log" ] && grep "<task " ${RESULTS_DIR}/hotspot-*.log > "${RESULTS_DIR}/log.log" +[ -f "${BASE_DIR}/errorlog.txt" ] && mv "${BASE_DIR}/errorlog.txt" ${RESULTS_DIR} diff --git a/frameworks/SPASSmeter/benchmark-causes.sh b/frameworks/SPASSmeter/benchmark-causes.sh index 512b5b7d0a03f593020c22d16050180950885d21..fdc1e033a755ef42d1fc21ffa6fa38cbda4cec39 100644 --- a/frameworks/SPASSmeter/benchmark-causes.sh +++ b/frameworks/SPASSmeter/benchmark-causes.sh @@ -1,164 +1,167 @@ #!/bin/bash # This file is configured for linux instead of solaris!!! -JAVABIN="" +JAVA_BIN="" -RSCRIPTDIR=r/ -BASEDIR=./ -RESULTSDIR="${BASEDIR}tmp/results-spassmeter/" +RSCRIPT_DIR=r +BASE_DIR=. +RESULT_DIR="${BASE_DIR}/tmp/results-spassmeter" -SLEEPTIME=30 ## 30 +## TODO this should be moved to a config file +SLEEP_TIME=30 ## 30 NUM_LOOPS=10 ## 10 THREADS=1 ## 1 -RECURSIONDEPTH=10 ## 10 -TOTALCALLS=2000000 ## 2000000 -METHODTIME=0 ## 500000 +RECURSION_DEPTH=10 ## 10 +TOTAL_CALLS=2000000 ## 2000000 +METHOD_TIME=0 ## 500000 -#MOREPARAMS="--quickstart" -MOREPARAMS="--application mooBench.monitoredApplication.MonitoredClassSimple ${MOREPARAMS}" +#MORE_PARAMS="--quickstart" +MORE_PARAMS="--application mooBench.monitoredApplication.MonitoredClassSimple ${MORE_PARAMS}" -TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} ` +TIME=`expr ${METHOD_TIME} \* ${TOTAL_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_LOOPS} + ${SLEEP_TIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSION_DEPTH} + 50 \* ${TOTAL_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_LOOPS} ` echo "Experiment will take circa ${TIME} seconds." -echo "Removing and recreating '$RESULTSDIR'" -(rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR} -#mkdir ${RESULTSDIR}stat/ +echo "Removing and recreating '${RESULT_DIR}'" +(rm -rf "${RESULT_DIR}") && mkdir -p "${RESULT_DIR}" +#mkdir ${RESULT_DIR}/stat # Clear spassmeter.log and initialize logging -rm -f ${BASEDIR}spassmeter.log -touch ${BASEDIR}spassmeter.log - -RAWFN="${RESULTSDIR}raw" - -JAVAARGS="-server" -JAVAARGS="${JAVAARGS} -d64" -JAVAARGS="${JAVAARGS} -Xms1G -Xmx12G" -JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation" -#JAVAARGS="${JAVAARGS} -XX:+PrintInlining" -#JAVAARGS="${JAVAARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation" -#JAVAARGS="${JAVAARGS} -Djava.compiler=NONE" +rm -f "${BASE_DIR}/spassmeter.log" +touch "${BASE_DIR}/spassmeter.log" + +RAWFN="${RESULTS_DIR}/raw" + +JAVA_ARGS="-server" +JAVA_ARGS="${JAVA_ARGS} -d64" +JAVA_ARGS="${JAVA_ARGS} -Xms1G -Xmx12G" +JAVA_ARGS="${JAVA_ARGS} -verbose:gc -XX:+PrintCompilation" +#JAVA_ARGS="${JAVA_ARGS} -XX:+PrintInlining" +#JAVA_ARGS="${JAVA_ARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation" +#JAVA_ARGS="${JAVA_ARGS} -Djava.compiler=NONE" JAR="-jar MooBench.jar" -JAVAARGS_NOINSTR="${JAVAARGS}" -JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}lib/linux/spass-meter-ia.jar=xmlconfig=${BASEDIR}lib/config.xml,out=${RESULTSDIR}spassmeter.txt,tcp=localhost:6002" +JAVA_ARGS_NOINSTR="${JAVA_ARGS}" +JAVA_ARGS_LTW="${JAVA_ARGS} -javaagent:${BASE_DIR}/lib/linux/spass-meter-ia.jar=xmlconfig=${BASE_DIR}/lib/config.xml,out=${RESULT_DIR}/spassmeter.txt,tcp=localhost:6002" -SERVER="-server -d64 -Xms1G -Xmx4G -classpath ${BASEDIR}lib/linux/spass-meter-ant.jar de.uni_hildesheim.sse.monitoring.runtime.recordingServer.TCPRecordingServer baseDir=. port=6002" +SERVER="-server -d64 -Xms1G -Xmx4G -classpath ${BASE_DIR}/lib/linux/spass-meter-ant.jar de.uni_hildesheim.sse.monitoring.runtime.recordingServer.TCPRecordingServer baseDir=. port=6002" ## 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 +uname -a > "${RESULT_DIR}/configuration.txt" +${JAVA_BIN} ${JAVA_ARGS} -version 2>> "${RESULT_DIR}/configuration.txt" +echo "JAVA_ARGS: ${JAVA_ARGS}" >> "${RESULT_DIR}/configuration.txt" +echo "" >> "${RESULT_DIR}/configuration.txt" +echo "Runtime: circa ${TIME} seconds" >> "${RESULT_DIR}/configuration.txt" +echo "" >> "${RESULT_DIR}/configuration.txt" +echo "SLEEPTIME=${SLEEP_TIME}" >> "${RESULT_DIR}/configuration.txt" +echo "NUM_LOOPS=${NUM_LOOPS}" >> "${RESULT_DIR}/configuration.txt" +echo "TOTALCALLS=${TOTAL_CALLS}" >> "${RESULT_DIR}/configuration.txt" +echo "METHODTIME=${METHOD_TIME}" >> "${RESULT_DIR}/configuration.txt" +echo "THREADS=${THREADS}" >> "${RESULT_DIR}/configuration.txt" +echo "RECURSIONDEPTH=${RECURSION_DEPTH}" >> "${RESULT_DIR}/configuration.txt" sync ## Execute Benchmark for ((i=1;i<=${NUM_LOOPS};i+=1)); do - j=${RECURSIONDEPTH} + j="${RECURSION_DEPTH}" k=0 echo "## Starting iteration ${i}/${NUM_LOOPS}" - echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASEDIR}spassmeter.log + echo "## Starting iteration ${i}/${NUM_LOOPS}" >> "${BASE_DIR}/spassmeter.log" # No instrumentation k=`expr ${k} + 1` echo " # ${i}.${j}.${k} No instrumentation" - echo " # ${i}.${j}.${k} No instrumentation" >>${BASEDIR}spassmeter.log - #sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & - ${JAVABIN}java ${JAVAARGS_NOINSTR} ${JAR} \ + echo " # ${i}.${j}.${k} No instrumentation" >> "${BASE_DIR}/spassmeter.log" + #sar -o ${RESULT_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVA_BIN} ${JAVA_ARGS_NOINSTR} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ + --totalcalls ${TOTAL_CALLS} \ + --methodtime ${METHOD_TIME} \ --totalthreads ${THREADS} \ --recursiondepth ${j} \ - ${MOREPARAMS} + ${MORE_PARAMS} #kill %sar - [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log - echo >>${BASEDIR}spassmeter.log - echo >>${BASEDIR}spassmeter.log + [ -f "${BASE_DIR}/hotspot.log" ] && mv "${BASE_DIR}/hotspot.log" "${RESULT_DIR}/hotspot-${i}-${j}-${k}.log" + echo >> "${BASE_DIR}/spassmeter.log" + echo >> "${BASE_DIR}/spassmeter.log" sync - sleep ${SLEEPTIME} + sleep "${SLEEP_TIME}" # SPASSmeter Javassist Instrumentation k=`expr ${k} + 1` echo " # ${i}.${j}.${k} SPASSmeter Javassist Instrumentation" - echo " # ${i}.${j}.${k} SPASSmeter Javassist Instrumentation" >>${BASEDIR}spassmeter.log - #sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & - ${JAVABIN}java ${SERVER} 1>>server.out 2>&1 & - ${JAVABIN}java ${JAVAARGS_LTW},mainDefault=NONE -DSpassmeterNoWriter=true ${JAR} -f \ + echo " # ${i}.${j}.${k} SPASSmeter Javassist Instrumentation" >> "${BASE_DIR}/spassmeter.log" + #sar -o ${RESULT_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVA_BIN} ${SERVER} 1>>server.out 2>&1 & + ${JAVA_BIN} ${JAVA_ARGS_LTW},mainDefault=NONE -DSpassmeterNoWriter=true ${JAR} -f \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ + --totalcalls ${TOTAL_CALLS} \ + --methodtime ${METHOD_TIME} \ --totalthreads ${THREADS} \ --recursiondepth ${j} \ - ${MOREPARAMS} + ${MORE_PARAMS} kill -9 $! #kill %sar - [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log - echo >>${BASEDIR}spassmeter.log - echo >>${BASEDIR}spassmeter.log + [ -f "${BASE_DIR}/hotspot.log" ] && mv "${BASE_DIR}/hotspot.log" "${RESULT_DIR}/hotspot-${i}-${j}-${k}.log" + echo >> "${BASE_DIR}/spassmeter.log" + echo >> "${BASE_DIR}/spassmeter.log" sync - sleep ${SLEEPTIME} + sleep "${SLEEP_TIME}" # SPASSmeter Javassist Collecting k=`expr ${k} + 1` echo " # ${i}.${j}.${k} SPASSmeter Javassist Collecting" - echo " # ${i}.${j}.${k} SPASSmeter Javassist Collecting" >>${BASEDIR}spassmeter.log - #sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & - ${JAVABIN}java ${SERVER} 1>>server.out 2>&1 & - ${JAVABIN}java ${JAVAARGS_LTW} -DSpassmeterNoWriter=true ${JAR} -f \ + echo " # ${i}.${j}.${k} SPASSmeter Javassist Collecting" >> "${BASE_DIR}/spassmeter.log" + #sar -o ${RESULT_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVA_BIN} ${SERVER} 1>>server.out 2>&1 & + ${JAVA_BIN} ${JAVA_ARGS_LTW} -DSpassmeterNoWriter=true ${JAR} -f \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ + --totalcalls ${TOTAL_CALLS} \ + --methodtime ${METHOD_TIME} \ --totalthreads ${THREADS} \ --recursiondepth ${j} \ - ${MOREPARAMS} + ${MORE_PARAMS} kill -9 $! #kill %sar - [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log - echo >>${BASEDIR}spassmeter.log - echo >>${BASEDIR}spassmeter.log + [ -f "${BASE_DIR}/hotspot.log" ] && mv "${BASE_DIR}/hotspot.log" "${RESULT_DIR}/hotspot-${i}-${j}-${k}.log" + echo >> "${BASE_DIR}/spassmeter.log" + echo >> "${BASE_DIR}/spassmeter.log" sync - sleep ${SLEEPTIME} + sleep "${SLEEP_TIME}" # SPASSmeter Javassist Writing k=`expr ${k} + 1` echo " # ${i}.${j}.${k} SPASSmeter Javassist Writing" - echo " # ${i}.${j}.${k} SPASSmeter Javassist Writing" >>${BASEDIR}spassmeter.log - #sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & - ${JAVABIN}java ${SERVER} 1>>server.out 2>&1 & - ${JAVABIN}java ${JAVAARGS_LTW} -DSpassmeterNoWriter=fals ${JAR} -f \ + echo " # ${i}.${j}.${k} SPASSmeter Javassist Writing" >> "${BASE_DIR}/spassmeter.log" + #sar -o ${RESULT_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVA_BIN} ${SERVER} 1>>server.out 2>&1 & + ${JAVA_BIN} ${JAVA_ARGS_LTW} -DSpassmeterNoWriter=fals ${JAR} -f \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ + --totalcalls ${TOTAL_CALLS} \ + --methodtime ${METHOD_TIME} \ --totalthreads ${THREADS} \ --recursiondepth ${j} \ - ${MOREPARAMS} + ${MORE_PARAMS} kill -9 $! #kill %sar - [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log - echo >>${BASEDIR}spassmeter.log - echo >>${BASEDIR}spassmeter.log + [ -f "${BASE_DIR}/hotspot.log" ] && mv "${BASE_DIR}/hotspot.log" "${RESULT_DIR}/hotspot-${i}-${j}-${k}.log" + echo >> "${BASE_DIR}/spassmeter.log" + echo >> "${BASE_DIR}/spassmeter.log" sync - sleep ${SLEEPTIME} + sleep "${SLEEP_TIME}" done -#zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat -#rm -rf ${RESULTSDIR}stat/ -mv ${BASEDIR}spassmeter.log ${RESULTSDIR}spassmeter.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} +#zip -jqr ${RESULT_DIR}/stat.zip ${RESULT_DIR}/stat +#rm -rf ${RESULT_DIR}/stat/ +mv "${BASE_DIR}/spassmeter.log" "${RESULT_DIR}/spassmeter.log" +[ -f "${RESULT_DIR}/hotspot-1-${RECURSIONDEPTH}-1.log" ] && grep "<task " ${RESULT_DIR}/hotspot-*.log > "${RESULT_DIR}/log.log" +[ -f "${BASE_DIR}/errorlog.txt" ] && mv "${BASE_DIR}/errorlog.txt" "${RESULT_DIR}/" ## Clean up raw results -#gzip -qr ${RESULTSDIR}results.zip ${RAWFN}* +#gzip -qr "${RESULT_DIR}/results.zip" ${RAWFN}* #rm -f ${RAWFN}* -[ -f ${BASEDIR}nohup.out ] && cp ${BASEDIR}nohup.out ${RESULTSDIR} -[ -f ${BASEDIR}server.out ] && mv ${BASEDIR}server.out ${RESULTSDIR} -[ -f ${BASEDIR}nohup.out ] && > ${BASEDIR}nohup.out +[ -f "${BASE_DIR}/nohup.out" ] && cp "${BASE_DIR}/nohup.out" "${RESULT_DIR}/" +[ -f "${BASE_DIR}/server.out" ] && mv "${BASE_DIR}/server.out" "${RESULT_DIR}/" +[ -f "${BASE_DIR}/nohup.out" ] && > "${BASE_DIR}/nohup.out" + +# end diff --git a/frameworks/SPASSmeter/benchmark-tcp.sh b/frameworks/SPASSmeter/benchmark-tcp.sh index 2f8b72f59e5335317f35edeb6382788a4d9e720f..1804126ed9dc08d439a6545da03bb8eb9a46c978 100644 --- a/frameworks/SPASSmeter/benchmark-tcp.sh +++ b/frameworks/SPASSmeter/benchmark-tcp.sh @@ -5,30 +5,30 @@ JAVABIN="" RSCRIPTDIR=r/ BASEDIR=./ -RESULTSDIR="${BASEDIR}tmp/results-spassmeter/" +RESULTSDIR="${BASE_DIR}/tmp/results-spassmeter/" SLEEPTIME=30 ## 30 NUM_LOOPS=10 ## 10 THREADS=1 ## 1 RECURSIONDEPTH=10 ## 10 -TOTALCALLS=2000000 ## 2000000 -METHODTIME=0 ## 500000 +TOTAL_CALLS=2000000 ## 2000000 +METHOD_TIME=0 ## 500000 -#MOREPARAMS="--quickstart" -MOREPARAMS="--application mooBench.monitoredApplication.MonitoredClassSimple ${MOREPARAMS}" +#MORE_PARAMS="--quickstart" +MORE_PARAMS="--application mooBench.monitoredApplication.MonitoredClassSimple ${MORE_PARAMS}" -TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} ` +TIME=`expr ${METHOD_TIME} \* ${TOTAL_CALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEP_TIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSIONDEPTH} + 50 \* ${TOTAL_CALLS} / 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/ +(rm -rf ${RESULT_DIR}/) && mkdir ${RESULT_DIR}/ +#mkdir ${RESULT_DIR}/stat/ # Clear spassmeter.log and initialize logging -rm -f ${BASEDIR}spassmeter.log -touch ${BASEDIR}spassmeter.log +rm -f ${BASE_DIR}/spassmeter.log +touch ${BASE_DIR}/spassmeter.log -RAWFN="${RESULTSDIR}raw" +RAWFN="${RESULT_DIR}/raw" JAVAARGS="-server" JAVAARGS="${JAVAARGS} -d64" @@ -40,24 +40,24 @@ JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation" JAR="-jar MooBench.jar" JAVAARGS_NOINSTR="${JAVAARGS}" -JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}lib/linux/spass-meter-ia.jar=xmlconfig=${BASEDIR}lib/config.xml,out=${RESULTSDIR}spassmeter.txt,tcp=localhost:6002" +JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASE_DIR}/lib/linux/spass-meter-ia.jar=xmlconfig=${BASE_DIR}/lib/config.xml,out=${RESULT_DIR}/spassmeter.txt,tcp=localhost:6002" JAVAARGS_LTW_ASM="${JAVAARGS_LTW} -Dspass-meter.iFactory=de.uni_hildesheim.sse.monitoring.runtime.instrumentation.asmTree.Factory" -SERVER="${JAVAARGS} -classpath ${BASEDIR}lib/linux/spass-meter-ant.jar de.uni_hildesheim.sse.monitoring.runtime.recordingServer.TCPRecordingServer baseDir=. port=6002" +SERVER="${JAVAARGS} -classpath ${BASE_DIR}/lib/linux/spass-meter-ant.jar de.uni_hildesheim.sse.monitoring.runtime.recordingServer.TCPRecordingServer baseDir=. port=6002" ## 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 +uname -a >${RESULT_DIR}/configuration.txt +${JAVA_BIN} ${JAVAARGS} -version 2>>${RESULT_DIR}/configuration.txt +echo "JAVAARGS: ${JAVAARGS}" >>${RESULT_DIR}/configuration.txt +echo "" >>${RESULT_DIR}/configuration.txt +echo "Runtime: circa ${TIME} seconds" >>${RESULT_DIR}/configuration.txt +echo "" >>${RESULT_DIR}/configuration.txt +echo "SLEEPTIME=${SLEEP_TIME}" >>${RESULT_DIR}/configuration.txt +echo "NUM_LOOPS=${NUM_LOOPS}" >>${RESULT_DIR}/configuration.txt +echo "TOTAL_CALLS=${TOTAL_CALLS}" >>${RESULT_DIR}/configuration.txt +echo "METHOD_TIME=${METHOD_TIME}" >>${RESULT_DIR}/configuration.txt +echo "THREADS=${THREADS}" >>${RESULT_DIR}/configuration.txt +echo "RECURSIONDEPTH=${RECURSIONDEPTH}" >>${RESULT_DIR}/configuration.txt sync ## Execute Benchmark @@ -65,77 +65,77 @@ 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}spassmeter.log + echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASE_DIR}/spassmeter.log # No instrumentation k=`expr ${k} + 1` echo " # ${i}.${j}.${k} No instrumentation" - echo " # ${i}.${j}.${k} No instrumentation" >>${BASEDIR}spassmeter.log - #sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & - ${JAVABIN}java ${JAVAARGS_NOINSTR} ${JAR} \ + echo " # ${i}.${j}.${k} No instrumentation" >>${BASE_DIR}/spassmeter.log + #sar -o ${RESULT_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVA_BIN} ${JAVAARGS_NOINSTR} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ + --totalcalls ${TOTAL_CALLS} \ + --methodtime ${METHOD_TIME} \ --totalthreads ${THREADS} \ --recursiondepth ${j} \ - ${MOREPARAMS} + ${MORE_PARAMS} #kill %sar - [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log - echo >>${BASEDIR}spassmeter.log - echo >>${BASEDIR}spassmeter.log + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >>${BASE_DIR}/spassmeter.log + echo >>${BASE_DIR}/spassmeter.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} # SPASSmeter Javassist k=`expr ${k} + 1` echo " # ${i}.${j}.${k} SPASSmeter Javassist" - echo " # ${i}.${j}.${k} SPASSmeter Javassist" >>${BASEDIR}spassmeter.log - #sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & - ${JAVABIN}java ${SERVER} 1>>server.out 2>&1 & - ${JAVABIN}java ${JAVAARGS_LTW} ${JAR} \ + echo " # ${i}.${j}.${k} SPASSmeter Javassist" >>${BASE_DIR}/spassmeter.log + #sar -o ${RESULT_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVA_BIN} ${SERVER} 1>>server.out 2>&1 & + ${JAVA_BIN} ${JAVAARGS_LTW} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ + --totalcalls ${TOTAL_CALLS} \ + --methodtime ${METHOD_TIME} \ --totalthreads ${THREADS} \ --recursiondepth ${j} \ - ${MOREPARAMS} + ${MORE_PARAMS} #kill %sar - [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log - echo >>${BASEDIR}spassmeter.log - echo >>${BASEDIR}spassmeter.log + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >>${BASE_DIR}/spassmeter.log + echo >>${BASE_DIR}/spassmeter.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} # SPASSmeter ASM k=`expr ${k} + 1` echo " # ${i}.${j}.${k} SPASSmeter ASM" - echo " # ${i}.${j}.${k} SPASSmeter ASM" >>${BASEDIR}spassmeter.log - #sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & - ${JAVABIN}java ${SERVER} 1>>server.out 2>&1 & - ${JAVABIN}java ${JAVAARGS_LTW_ASM} ${JAR} \ + echo " # ${i}.${j}.${k} SPASSmeter ASM" >>${BASE_DIR}/spassmeter.log + #sar -o ${RESULT_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVA_BIN} ${SERVER} 1>>server.out 2>&1 & + ${JAVA_BIN} ${JAVAARGS_LTW_ASM} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --totalcalls ${TOTALCALLS} \ - --methodtime ${METHODTIME} \ + --totalcalls ${TOTAL_CALLS} \ + --methodtime ${METHOD_TIME} \ --totalthreads ${THREADS} \ --recursiondepth ${j} \ - ${MOREPARAMS} + ${MORE_PARAMS} #kill %sar - [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log - echo >>${BASEDIR}spassmeter.log - echo >>${BASEDIR}spassmeter.log + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >>${BASE_DIR}/spassmeter.log + echo >>${BASE_DIR}/spassmeter.log sync - sleep ${SLEEPTIME} + sleep ${SLEEP_TIME} done -#zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat -#rm -rf ${RESULTSDIR}stat/ -mv ${BASEDIR}spassmeter.log ${RESULTSDIR}spassmeter.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} +#zip -jqr ${RESULT_DIR}/stat.zip ${RESULT_DIR}/stat +#rm -rf ${RESULT_DIR}/stat/ +mv ${BASE_DIR}/spassmeter.log ${RESULT_DIR}/spassmeter.log +[ -f ${RESULT_DIR}/hotspot-1-${RECURSIONDEPTH}-1.log ] && grep "<task " ${RESULT_DIR}/hotspot-*.log >${RESULT_DIR}/log.log +[ -f ${BASE_DIR}/errorlog.txt ] && mv ${BASE_DIR}/errorlog.txt ${RESULT_DIR}/ ## Clean up raw results -#gzip -qr ${RESULTSDIR}results.zip ${RAWFN}* +#gzip -qr ${RESULT_DIR}/results.zip ${RAWFN}* #rm -f ${RAWFN}* -[ -f ${BASEDIR}nohup.out ] && cp ${BASEDIR}nohup.out ${RESULTSDIR} -[ -f ${BASEDIR}server.out ] && mv ${BASEDIR}server.out ${RESULTSDIR} -[ -f ${BASEDIR}nohup.out ] && > ${BASEDIR}nohup.out +[ -f ${BASE_DIR}/nohup.out ] && cp ${BASE_DIR}/nohup.out ${RESULT_DIR}/ +[ -f ${BASE_DIR}/server.out ] && mv ${BASE_DIR}/server.out ${RESULT_DIR}/ +[ -f ${BASE_DIR}/nohup.out ] && > ${BASE_DIR}/nohup.out diff --git a/frameworks/SPASSmeter/benchmark.sh b/frameworks/SPASSmeter/benchmark.sh index 9c5d98f4cc722f1dcebd5d5a9cd7db056d4837ac..148896e5a5affccc90531e54ecea475c500c6bed 100755 --- a/frameworks/SPASSmeter/benchmark.sh +++ b/frameworks/SPASSmeter/benchmark.sh @@ -1,137 +1,138 @@ #!/bin/bash # This file is configured for linux instead of solaris!!! -JAVABIN="" +JAVA_BIN="" -RSCRIPTDIR=r/ -BASEDIR=./ -RESULTSDIR="${BASEDIR}tmp/results-spassmeter/" +RSCRIPT_DIR=r +BASE_DIR=. +RESULT_DIR="${BASE_DIR}/tmp/results-spassmeter" -SLEEPTIME=30 ## 30 +## TODO this should be moved to a config file +SLEEP_TIME=30 ## 30 NUM_LOOPS=10 ## 10 THREADS=1 ## 1 -RECURSIONDEPTH=10 ## 10 -TOTALCALLS=2000000 ## 2000000 -METHODTIME=0 ## 500000 +RECURSION_DEPTH=10 ## 10 +TOTAL_CALLS=2000000 ## 2000000 +METHOD_TIME=0 ## 500000 -#MOREPARAMS="--quickstart" -MOREPARAMS="--application moobench.application.MonitoredClassSimple ${MOREPARAMS}" +#MORE_PARAMS="--quickstart" +MORE_PARAMS="--application moobench.application.MonitoredClassSimple ${MORE_PARAMS}" -TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} ` +TIME=`expr ${METHOD_TIME} \* ${TOTAL_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_LOOPS} + ${SLEEP_TIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSION_DEPTH} + 50 \* ${TOTAL_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_LOOPS} ` echo "Experiment will take circa ${TIME} seconds." -echo "Removing and recreating '$RESULTSDIR'" -(rm -rf ${RESULTSDIR}) && mkdir -p ${RESULTSDIR} -#mkdir ${RESULTSDIR}stat/ +echo "Removing and recreating '${RESULT_DIR}'" +(rm -rf "${RESULT_DIR}") && mkdir -p "${RESULT_DIR}" +#mkdir ${RESULT_DIR}/stat # Clear spassmeter.log and initialize logging -rm -f ${BASEDIR}spassmeter.log -touch ${BASEDIR}spassmeter.log - -RAWFN="${RESULTSDIR}raw" - -JAVAARGS="-server" -JAVAARGS="${JAVAARGS} " -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" +rm -f "${BASE_DIR}/spassmeter.log" +touch "${BASE_DIR}/spassmeter.log" + +RAWFN="${RESULTS_DIR}/raw" + +JAVA_ARGS="-server" +JAVA_ARGS="${JAVA_ARGS} " +JAVA_ARGS="${JAVA_ARGS} -Xms1G -Xmx4G" +JAVA_ARGS="${JAVA_ARGS} -verbose:gc -XX:+PrintCompilation" +#JAVA_ARGS="${JAVA_ARGS} -XX:+PrintInlining" +#JAVA_ARGS="${JAVA_ARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation" +#JAVA_ARGS="${JAVA_ARGS} -Djava.compiler=NONE" JAR="-jar MooBench.jar" -JAVAARGS_NOINSTR="${JAVAARGS}" -JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}lib/linux/spass-meter-ia.jar=xmlconfig=${BASEDIR}lib/config.xml,out=${RESULTSDIR}spassmeter.txt" +JAVA_ARGS_NOINSTR="${JAVA_ARGS}" +JAVA_ARGS_LTW="${JAVA_ARGS} -javaagent:${BASE_DIR}/lib/linux/spass-meter-ia.jar=xmlconfig=${BASE_DIR}/lib/config.xml,out=${RESULT_DIR}/spassmeter.txt" JAVAARGS_LTW_ASM="${JAVAARGS_LTW} -Dspass-meter.iFactory=de.uni_hildesheim.sse.monitoring.runtime.instrumentation.asmTree.Factory" ## 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 +uname -a > "${RESULT_DIR}/configuration.txt" +${JAVA_BIN} ${JAVA_ARGS} -version 2>> "${RESULT_DIR}/configuration.txt" +echo "JAVA_ARGS: ${JAVA_ARGS}" >> "${RESULT_DIR}/configuration.txt" +echo "" >> "${RESULT_DIR}/configuration.txt" +echo "Runtime: circa ${TIME} seconds" >> "${RESULT_DIR}/configuration.txt" +echo "" >> "${RESULT_DIR}/configuration.txt" +echo "SLEEPTIME=${SLEEP_TIME}" >> "${RESULT_DIR}/configuration.txt" +echo "NUM_LOOPS=${NUM_LOOPS}" >> "${RESULT_DIR}/configuration.txt" +echo "TOTALCALLS=${TOTAL_CALLS}" >> "${RESULT_DIR}/configuration.txt" +echo "METHODTIME=${METHOD_TIME}" >> "${RESULT_DIR}/configuration.txt" +echo "THREADS=${THREADS}" >> "${RESULT_DIR}/configuration.txt" +echo "RECURSIONDEPTH=${RECURSION_DEPTH}" >> "${RESULT_DIR}/configuration.txt" sync ## Execute Benchmark for ((i=1;i<=${NUM_LOOPS};i+=1)); do - j=${RECURSIONDEPTH} + j="${RECURSION_DEPTH}" k=0 echo "## Starting iteration ${i}/${NUM_LOOPS}" - echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASEDIR}spassmeter.log + echo "## Starting iteration ${i}/${NUM_LOOPS}" >> "${BASE_DIR}/spassmeter.log" # No instrumentation k=`expr ${k} + 1` echo " # ${i}.${j}.${k} No instrumentation" - echo " # ${i}.${j}.${k} No instrumentation" >>${BASEDIR}spassmeter.log - #sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & - ${JAVABIN}java ${JAVAARGS_NOINSTR} ${JAR} \ + echo " # ${i}.${j}.${k} No instrumentation" >> "${BASE_DIR}/spassmeter.log" + #sar -o ${RESULT_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVA_BIN} ${JAVA_ARGS_NOINSTR} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --total-calls ${TOTALCALLS} \ - --method-time ${METHODTIME} \ + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ --total-threads ${THREADS} \ --recursion-depth ${j} \ - ${MOREPARAMS} + ${MORE_PARAMS} #kill %sar - [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log - echo >>${BASEDIR}spassmeter.log - echo >>${BASEDIR}spassmeter.log + [ -f "${BASE_DIR}/hotspot.log" ] && mv "${BASE_DIR}/hotspot.log" "${RESULT_DIR}/hotspot-${i}-${j}-${k}.log" + echo >> "${BASE_DIR}/spassmeter.log" + echo >> "${BASE_DIR}/spassmeter.log" sync - sleep ${SLEEPTIME} + sleep "${SLEEP_TIME}" # SPASSmeter Javassist k=`expr ${k} + 1` echo " # ${i}.${j}.${k} SPASSmeter Javassist" - echo " # ${i}.${j}.${k} SPASSmeter Javassist" >>${BASEDIR}spassmeter.log - #sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & - ${JAVABIN}java ${JAVAARGS_LTW} ${JAR} \ + echo " # ${i}.${j}.${k} SPASSmeter Javassist" >> "${BASE_DIR}/spassmeter.log" + #sar -o ${RESULT_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVA_BIN} ${JAVAARGS_LTW} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ - --total-calls ${TOTALCALLS} \ - --method-time ${METHODTIME} \ + --total-calls ${TOTAL_CALLS} \ + --method-time ${METHOD_TIME} \ --total-threads ${THREADS} \ --recursion-depth ${j} \ - ${MOREPARAMS} + ${MORE_PARAMS} #kill %sar - [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log - echo >>${BASEDIR}spassmeter.log - echo >>${BASEDIR}spassmeter.log + [ -f "${BASE_DIR}/hotspot.log" ] && mv "${BASE_DIR}/hotspot.log" "${RESULT_DIR}/hotspot-${i}-${j}-${k}.log" + echo >> "${BASE_DIR}/spassmeter.log" + echo >> "${BASE_DIR}/spassmeter.log" sync - sleep ${SLEEPTIME} + sleep "${SLEEP_TIME}" # SPASSmeter ASM k=`expr ${k} + 1` echo " # ${i}.${j}.${k} SPASSmeter ASM" - echo " # ${i}.${j}.${k} SPASSmeter ASM" >>${BASEDIR}spassmeter.log - #sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & - ${JAVABIN}java ${JAVAARGS_LTW_ASM} ${JAR} \ + echo " # ${i}.${j}.${k} SPASSmeter ASM" >> "${BASE_DIR}/spassmeter.log" + #sar -o ${RESULT_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVA_BIN} ${JAVAARGS_LTW_ASM} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ --total-calls ${TOTALCALLS} \ --method-time ${METHODTIME} \ --total-threads ${THREADS} \ --recursion-depth ${j} \ - ${MOREPARAMS} + ${MORE_PARAMS} #kill %sar - [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log - echo >>${BASEDIR}spassmeter.log - echo >>${BASEDIR}spassmeter.log + [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULT_DIR}/hotspot-${i}-${j}-${k}.log + echo >> "${BASE_DIR}/spassmeter.log" + echo >> "${BASE_DIR}/spassmeter.log" sync sleep ${SLEEPTIME} done -#zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat -#rm -rf ${RESULTSDIR}stat/ -mv ${BASEDIR}spassmeter.log ${RESULTSDIR}spassmeter.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} +#zip -jqr ${RESULT_DIR}/stat.zip ${RESULT_DIR}/stat +#rm -rf ${RESULT_DIR}/stat/ +mv ${BASE_DIR}/spassmeter.log ${RESULT_DIR}/spassmeter.log +[ -f ${RESULT_DIR}/hotspot-1-${RECURSIONDEPTH}-1.log ] && grep "<task " ${RESULT_DIR}/hotspot-*.log >${RESULT_DIR}/log.log +[ -f ${BASE_DIR}/errorlog.txt ] && mv ${BASE_DIR}/errorlog.txt ${RESULT_DIR}/ ## Clean up raw results -#gzip -qr ${RESULTSDIR}results.zip ${RAWFN}* +#gzip -qr ${RESULT_DIR}/results.zip ${RAWFN}* #rm -f ${RAWFN}* -[ -f ${BASEDIR}nohup.out ] && cp ${BASEDIR}nohup.out ${RESULTSDIR} -[ -f ${BASEDIR}nohup.out ] && > ${BASEDIR}nohup.out +[ -f ${BASE_DIR}/nohup.out ] && cp ${BASE_DIR}/nohup.out ${RESULT_DIR}/ +[ -f ${BASE_DIR}/nohup.out ] && > ${BASE_DIR}/nohup.out diff --git a/frameworks/common-functions.sh b/frameworks/common-functions.sh index 9fc3bc4c2e57a66056bda5a705dab6a91a51cd6d..ba795d0af90f80572ab99aa39b24c1b242a75cd4 100644 --- a/frameworks/common-functions.sh +++ b/frameworks/common-functions.sh @@ -42,10 +42,10 @@ function getInspectItAgent() { } function getOpentelemetryAgent() { - if [ ! -f ${BASEDIR}lib/opentelemetry-javaagent-all.jar ] + if [ ! -f "${BASE_DIR}/lib/opentelemetry-javaagent-all.jar" ] then - mkdir -p ${BASEDIR}lib - wget --output-document=${BASEDIR}lib/opentelemetry-javaagent-all.jar \ + mkdir -p "${BASE_DIR}/lib" + wget --output-document=${BASE_DIR}/lib/opentelemetry-javaagent-all.jar \ https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent-all.jar fi } @@ -114,15 +114,15 @@ function stopBackgroundProcess { function writeConfiguration() { uname -a >${RESULTS_DIR}/configuration.txt - ${JAVABIN}java ${JAVAARGS} -version 2>>${RESULTS_DIR}/configuration.txt - echo "JAVAARGS: ${JAVAARGS}" >>${RESULTS_DIR}/configuration.txt + ${JAVA_BIN} ${JAVA_ARGS} -version 2>>${RESULTS_DIR}/configuration.txt + echo "JAVAARGS: ${JAVA_ARGS}" >>${RESULTS_DIR}/configuration.txt echo "" >>${RESULTS_DIR}/configuration.txt echo "Runtime: circa ${TIME} seconds" >>${RESULTS_DIR}/configuration.txt echo "" >>${RESULTS_DIR}/configuration.txt - echo "SLEEPTIME=${SLEEPTIME}" >>${RESULTS_DIR}/configuration.txt + echo "SLEEPTIME=${SLEEP_TIME}" >>${RESULTS_DIR}/configuration.txt echo "NUM_OF_LOOPS=${NUM_OF_LOOPS}" >>${RESULTS_DIR}/configuration.txt echo "TOTAL_NUM_OF_CALLS=${TOTAL_NUM_OF_CALLS}" >>${RESULTS_DIR}/configuration.txt - echo "METHODTIME=${METHODTIME}" >>${RESULTS_DIR}/configuration.txt + echo "METHODTIME=${METHOD_TIME}" >>${RESULTS_DIR}/configuration.txt echo "THREADS=${THREADS}" >>${RESULTS_DIR}/configuration.txt echo "RECURSION_DEPTH=${RECURSION_DEPTH}" >>${RESULTS_DIR}/configuration.txt sync @@ -136,9 +136,9 @@ function printIntermediaryResults { } -FRAMEWORK_NAME=$(basename -- "$BASE_DIR") -RESULTS_DIR="$BASE_DIR/results-$FRAMEWORK_NAME" -RAWFN=$RESULTS_DIR"/raw" +FRAMEWORK_NAME=$(basename -- "${BASE_DIR}") +RESULTS_DIR="${BASE_DIR}/results-${FRAMEWORK_NAME}" +RAWFN="${RESULTS_DIR}/raw" # Initialize all unset parameters if [ -z $SLEEP_TIME ]; then diff --git a/frameworks/inspectIT/benchmark.sh b/frameworks/inspectIT/benchmark.sh index 78498bdc8d045b1882c2c09c084bc8ebace8482f..65b860ed0bb49b2e3669363c03d1258ebf032e48 100755 --- a/frameworks/inspectIT/benchmark.sh +++ b/frameworks/inspectIT/benchmark.sh @@ -4,13 +4,13 @@ function runNoInstrumentation { # No instrumentation echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/inspectIT.log - ${JAVABIN}java ${JAVAARGS_NOINSTR} ${JAR} \ + ${JAVA_BIN} ${JAVA_ARGS_NOINSTR} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ --method-time ${METHOD_TIME} \ --total-threads ${THREADS} \ --recursion-depth ${RECURSION_DEPTH} \ - ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt + ${MORE_PARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt } function runInspectITDeactivated { @@ -18,14 +18,14 @@ function runInspectITDeactivated { echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/inspectIT.log sleep $SLEEP_TIME - ${JAVABIN}java ${JAVAARGS_INSPECTIT_DEACTIVATED} ${JAR} \ + ${JAVA_BIN} ${JAVA_ARGS_INSPECTIT_DEACTIVATED} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ --method-time ${METHOD_TIME} \ --total-threads ${THREADS} \ --recursion-depth ${RECURSION_DEPTH} \ --force-terminate \ - ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt + ${MORE_PARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt sleep $SLEEP_TIME } @@ -34,14 +34,14 @@ function runInspectITNullWriter { echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/inspectIT.log sleep $SLEEP_TIME - ${JAVABIN}java ${JAVAARGS_INSPECTIT_NULLWRITER} ${JAR} \ + ${JAVA_BIN} ${JAVA_ARGS_INSPECTIT_NULLWRITER} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ --method-time ${METHOD_TIME} \ --total-threads ${THREADS} \ --recursion-depth ${RECURSION_DEPTH} \ --force-terminate \ - ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt + ${MORE_PARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt sleep $SLEEP_TIME } @@ -53,14 +53,14 @@ function runInspectITZipkin { echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/inspectIT.log startZipkin sleep $SLEEP_TIME - ${JAVABIN}java ${JAVAARGS_INSPECTIT_ZIPKIN} ${JAR} \ + ${JAVA_BIN} ${JAVA_ARGS_INSPECTIT_ZIPKIN} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ --method-time ${METHOD_TIME} \ --total-threads ${THREADS} \ --recursion-depth ${RECURSION_DEPTH} \ --force-terminate \ - ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt + ${MORE_PARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt stopBackgroundProcess sleep $SLEEP_TIME } @@ -72,31 +72,31 @@ function runInspectITPrometheus { echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/inspectIT.log startPrometheus sleep $SLEEP_TIME - ${JAVABIN}java ${JAVAARGS_INSPECTIT_PROMETHEUS} ${JAR} \ + ${JAVA_BIN} ${JAVA_ARGS_INSPECTIT_PROMETHEUS} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ --method-time ${METHOD_TIME} \ --total-threads ${THREADS} \ --recursion-depth ${RECURSION_DEPTH} \ --force-terminate \ - ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt + ${MORE_PARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt stopBackgroundProcess sleep $SLEEP_TIME } function cleanup { - [ -f ${BASE_DIR}hotspot.log ] && mv ${BASE_DIR}hotspot.log ${RESULTS_DIR}hotspot-${i}-${j}-${k}.log - echo >>${BASE_DIR}/inspectIT.log - echo >>${BASE_DIR}/inspectIT.log + [ -f "${BASE_DIR}/hotspot.log" ] && mv "${BASE_DIR}/hotspot.log" "${RESULTS_DIR}/hotspot-${i}-${j}-${k}.log" + echo >> "${BASE_DIR}/inspectIT.log" + echo >> "${BASE_DIR}/inspectIT.log" sync - sleep ${SLEEP_TIME} + sleep "${SLEEP_TIME}" } function getSum { awk '{sum += $1; square += $1^2} END {print "Average: "sum/NR" Standard Deviation: "sqrt(square / NR - (sum/NR)^2)" Count: "NR}' } -JAVABIN="" +JAVA_BIN="" BASE_DIR=$(pwd) RSCRIPT_PATH="../stats.csv.r" @@ -108,30 +108,30 @@ checkMoobenchApplication getInspectItAgent -#MOREPARAMS="--quickstart" -MOREPARAMS="${MOREPARAMS}" +#MORE_PARAMS="--quickstart" +MORE_PARAMS="${MORE_PARAMS}" TIME=`expr ${METHOD_TIME} \* ${TOTAL_NUM_OF_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_OF_LOOPS} + ${SLEEP_TIME} \* 4 \* ${NUM_OF_LOOPS} \* ${RECURSION_DEPTH} + 50 \* ${TOTAL_NUM_OF_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_OF_LOOPS} ` echo "Experiment will take circa ${TIME} seconds." echo "Removing and recreating '$RESULTS_DIR'" -(rm -rf ${RESULTS_DIR}/**csv) && mkdir -p ${RESULTS_DIR} +(rm -rf "${RESULTS_DIR}/"**csv) && mkdir -p "${RESULTS_DIR}" # Clear inspectit.log and initialize logging -rm -f ${BASE_DIR}/inspectIT.log -touch ${BASE_DIR}/inspectIT.log +rm -f "${BASE_DIR}/inspectIT.log" +touch "${BASE_DIR}/inspectIT.log" -JAVAARGS="-server" -JAVAARGS="${JAVAARGS} -Xms1G -Xmx2G" -JAVAARGS="${JAVAARGS} -verbose:gc " +JAVA_ARGS="-server" +JAVA_ARGS="${JAVA_ARGS} -Xms1G -Xmx2G" +JAVA_ARGS="${JAVA_ARGS} -verbose:gc " JAR="-jar MooBench.jar --application moobench.application.MonitoredClassSimple" -JAVAARGS_NOINSTR="${JAVAARGS}" -JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASE_DIR}/agent/inspectit-ocelot-agent-1.11.1.jar -Djava.util.logging.config.file=${BASE_DIR}/config/logging.properties" -JAVAARGS_INSPECTIT_DEACTIVATED="${JAVAARGS_LTW} -Dinspectit.service-name=moobench-inspectit -Dinspectit.exporters.metrics.prometheus.enabled=false -Dinspectit.exporters.tracing.zipkin.enabled=false -Dinspectit.config.file-based.path=${BASE_DIR}/config/onlyInstrument/" -JAVAARGS_INSPECTIT_NULLWRITER="${JAVAARGS_LTW} -Dinspectit.service-name=moobench-inspectit -Dinspectit.exporters.metrics.prometheus.enabled=false -Dinspectit.exporters.tracing.zipkin.enabled=false -Dinspectit.config.file-based.path=${BASE_DIR}/config/nullWriter/" -JAVAARGS_INSPECTIT_ZIPKIN="${JAVAARGS_LTW} -Dinspectit.service-name=moobench-inspectit -Dinspectit.exporters.metrics.prometheus.enabled=false -Dinspectit.exporters.tracing.zipkin.url=http://127.0.0.1:9411/api/v2/spans -Dinspectit.config.file-based.path=${BASE_DIR}/config/zipkin/" -JAVAARGS_INSPECTIT_PROMETHEUS="${JAVAARGS_LTW} -Dinspectit.service-name=moobench-inspectit -Dinspectit.exporters.metrics.zipkin.enabled=false -Dinspectit.exporters.metrics.prometheus.enabled=true -Dinspectit.config.file-based.path=${BASE_DIR}/config/prometheus/" +JAVA_ARGS_NOINSTR="${JAVA_ARGS}" +JAVA_ARGS_LTW="${JAVA_ARGS} -javaagent:${BASE_DIR}/agent/inspectit-ocelot-agent-1.11.1.jar -Djava.util.logging.config.file=${BASE_DIR}/config/logging.properties" +JAVA_ARGS_INSPECTIT_DEACTIVATED="${JAVA_ARGS_LTW} -Dinspectit.service-name=moobench-inspectit -Dinspectit.exporters.metrics.prometheus.enabled=false -Dinspectit.exporters.tracing.zipkin.enabled=false -Dinspectit.config.file-based.path=${BASE_DIR}/config/onlyInstrument/" +JAVA_ARGS_INSPECTIT_NULLWRITER="${JAVA_ARGS_LTW} -Dinspectit.service-name=moobench-inspectit -Dinspectit.exporters.metrics.prometheus.enabled=false -Dinspectit.exporters.tracing.zipkin.enabled=false -Dinspectit.config.file-based.path=${BASE_DIR}/config/nullWriter/" +JAVA_ARGS_INSPECTIT_ZIPKIN="${JAVA_ARGS_LTW} -Dinspectit.service-name=moobench-inspectit -Dinspectit.exporters.metrics.prometheus.enabled=false -Dinspectit.exporters.tracing.zipkin.url=http://127.0.0.1:9411/api/v2/spans -Dinspectit.config.file-based.path=${BASE_DIR}/config/zipkin/" +JAVA_ARGS_INSPECTIT_PROMETHEUS="${JAVA_ARGS_LTW} -Dinspectit.service-name=moobench-inspectit -Dinspectit.exporters.metrics.zipkin.enabled=false -Dinspectit.exporters.metrics.prometheus.enabled=true -Dinspectit.config.file-based.path=${BASE_DIR}/config/prometheus/" echo "RESULTS_DIR: $RESULTS_DIR" echo "RAWFN: $RAWFN" @@ -141,7 +141,7 @@ writeConfiguration for ((i=1;i<=${NUM_OF_LOOPS};i+=1)); do k=0 echo "## Starting iteration ${i}/${NUM_OF_LOOPS}" - echo "## Starting iteration ${i}/${NUM_OF_LOOPS}" >>${BASE_DIR}/inspectIT.log + echo "## Starting iteration ${i}/${NUM_OF_LOOPS}" >> "${BASE_DIR}/inspectIT.log" runNoInstrumentation cleanup @@ -160,14 +160,15 @@ for ((i=1;i<=${NUM_OF_LOOPS};i+=1)); do printIntermediaryResults done -mv ${BASE_DIR}/inspectIT.log ${RESULTS_DIR}/inspectIT.log -[ -f ${RESULTS_DIR}Hotspot-1-${RECURSION_DEPTH}-1.log ] && grep "<task " ${RESULTS_DIR}hotspot-*.log >${RESULTS_DIR}log.log -[ -f ${BASE_DIR}errorlog.txt ] && mv ${BASE_DIR}errorlog.txt ${RESULTS_DIR} + +mv "${BASE_DIR}/inspectIT.log" "${RESULTS_DIR}/inspectIT.log" +[ -f "${RESULTS_DIR}/Hotspot-1-${RECURSION_DEPTH}-1.log" ] && grep "<task " ${RESULTS_DIR}hotspot-*.log > "${RESULTS_DIR}/log.log" +[ -f "${BASE_DIR}/errorlog.txt" ] && mv "${BASE_DIR}/errorlog.txt" "${RESULTS_DIR}" # Create R labels LABELS=$(createRLabels) run-r ## Clean up raw results -zip -jqr ${RESULTS_DIR}/results.zip ${RAWFN}* +zip -jqr "${RESULTS_DIR}/results.zip" ${RAWFN}* rm ${RAWFN}*