From 1333327b2c6b4ae9db7f6f4c0836be04fb5995e9 Mon Sep 17 00:00:00 2001 From: Jan Waller <jwa@informatik.uni-kiel.de> Date: Thu, 6 Mar 2014 15:24:26 +0100 Subject: [PATCH] Additional experiemnts with inspectIT --- benchmark.sh | 275 ++++++++++++++++++ frameworks/inspectIT/README | 4 +- .../inspectIT/benchmark-isequence-inner.sh | 242 +++++++++++++++ frameworks/inspectIT/benchmark-timer-inner.sh | 242 +++++++++++++++ frameworks/inspectIT/benchmark.sh | 22 +- .../config/isequence/inspectit-agent.cfg | 49 ++++ .../{full => timer}/inspectit-agent.cfg | 0 7 files changed, 822 insertions(+), 12 deletions(-) create mode 100644 benchmark.sh create mode 100644 frameworks/inspectIT/benchmark-isequence-inner.sh create mode 100644 frameworks/inspectIT/benchmark-timer-inner.sh create mode 100644 frameworks/inspectIT/config/isequence/inspectit-agent.cfg rename frameworks/inspectIT/config/{full => timer}/inspectit-agent.cfg (100%) diff --git a/benchmark.sh b/benchmark.sh new file mode 100644 index 0000000..92bab31 --- /dev/null +++ b/benchmark.sh @@ -0,0 +1,275 @@ +#!/bin/bash + +JAVABIN="" + +RSCRIPTDIR=r/ +BASEDIR=./ +RESULTSDIR="${BASEDIR}tmp/results-inspectit/" + +SLEEPTIME=0 ## 30 +NUM_LOOPS=1 ## 10 +THREADS=1 ## 1 +RECURSIONDEPTH=10 ## 10 +TOTALCALLS=100000 ## 2000000 +METHODTIME=0 ## 500000 + +MOREPARAMS="--quickstart" +MOREPARAMS="${MOREPARAMS}" + +TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} ` +echo "Experiment will take circa ${TIME} seconds." + +echo "Removing and recreating '$RESULTSDIR'" +(rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR} +mkdir ${RESULTSDIR}stat/ + +# Clear inspectit.log and initialize logging +rm -f ${BASEDIR}inspectit.log +touch ${BASEDIR}inspectit.log + +RAWFN="${RESULTSDIR}raw" + +JAVAARGS="-server" +JAVAARGS="${JAVAARGS} -d64" +JAVAARGS="${JAVAARGS} -Xms1G -Xmx4G" +JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation" +#JAVAARGS="${JAVAARGS} -XX:+PrintInlining" +#JAVAARGS="${JAVAARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation" +#JAVAARGS="${JAVAARGS} -Djava.compiler=NONE" +JAR="-jar OverheadEvaluationMicrobenchmark.jar" + +JAVAARGS_NOINSTR="${JAVAARGS}" +JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}agent/inspectit-agent-mod.jar -Djava.util.logging.config.file=${BASEDIR}config/logging.properties" +JAVAARGS_INSPECTIT_DISABLED="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/full/inspectit-agent.cfg -Dinspectit.disableProbe=true" +JAVAARGS_INSPECTIT_NOSTORAGE="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/full/inspectit-agent.cfg -Dinspectit.disableStorage=true" +JAVAARGS_INSPECTIT_NOCHARTING="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/fullNoCharting/inspectit-agent.cfg" +JAVAARGS_INSPECTIT_FULL="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/full/inspectit-agent.cfg" + +## Write configuration +uname -a >${RESULTSDIR}configuration.txt +${JAVABIN}java ${JAVAARGS} -version 2>>${RESULTSDIR}configuration.txt +echo "JAVAARGS: ${JAVAARGS}" >>${RESULTSDIR}configuration.txt +echo "" >>${RESULTSDIR}configuration.txt +echo "Runtime: circa ${TIME} seconds" >>${RESULTSDIR}configuration.txt +echo "" >>${RESULTSDIR}configuration.txt +echo "SLEEPTIME=${SLEEPTIME}" >>${RESULTSDIR}configuration.txt +echo "NUM_LOOPS=${NUM_LOOPS}" >>${RESULTSDIR}configuration.txt +echo "TOTALCALLS=${TOTALCALLS}" >>${RESULTSDIR}configuration.txt +echo "METHODTIME=${METHODTIME}" >>${RESULTSDIR}configuration.txt +echo "THREADS=${THREADS}" >>${RESULTSDIR}configuration.txt +echo "RECURSIONDEPTH=${RECURSIONDEPTH}" >>${RESULTSDIR}configuration.txt +sync + +## Execute Benchmark +for ((i=1;i<=${NUM_LOOPS};i+=1)); do + j=${RECURSIONDEPTH} + k=0 + echo "## Starting iteration ${i}/${NUM_LOOPS}" + echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASEDIR}inspectit.log + + # No instrumentation + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} No instrumentation" + echo " # ${i}.${j}.${k} No instrumentation" >>${BASEDIR}inspectit.log + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java ${JAVAARGS_NOINSTR} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}inspectit.log + echo >>${BASEDIR}inspectit.log + sync + sleep ${SLEEPTIME} + + # InspectIT (disabled) + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} InspectIT (disabled)" + echo " # ${i}.${j}.${k} InspectIT (disabled)" >>${BASEDIR}inspectit.log + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java \ + -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \ + -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \ + -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \ + -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \ + -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \ + -Xloggc:${BASEDIR}tmp/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>${RESULTSDIR}cmr.log 2>&1 & + sleep 10 + ${JAVABIN}java ${JAVAARGS_INSPECTIT_DISABLED} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill $! + sleep 10 + [ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log + [ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log + rm -rf ${BASEDIR}storage/ + rm -rf ${BASEDIR}db/ + rm -rf ${BASEDIR}logs/ + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}inspectit.log + echo >>${BASEDIR}inspectit.log + sync + sleep ${SLEEPTIME} + + # InspectIT (no storage) + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} InspectIT (no storage)" + echo " # ${i}.${j}.${k} InspectIT (no storage)" >>${BASEDIR}inspectit.log + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java \ + -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \ + -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \ + -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \ + -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \ + -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \ + -Xloggc:${BASEDIR}tmp/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>${RESULTSDIR}cmr.log 2>&1 & + sleep 10 + ${JAVABIN}java ${JAVAARGS_INSPECTIT_NOSTORAGE} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill $! + sleep 10 + [ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log + [ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log + rm -rf ${BASEDIR}storage/ + rm -rf ${BASEDIR}db/ + rm -rf ${BASEDIR}logs/ + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}inspectit.log + echo >>${BASEDIR}inspectit.log + sync + sleep ${SLEEPTIME} + + # InspectIT (no charting) + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} InspectIT (no charting)" + echo " # ${i}.${j}.${k} InspectIT (no charting)" >>${BASEDIR}inspectit.log + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java \ + -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \ + -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \ + -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \ + -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \ + -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \ + -Xloggc:${BASEDIR}tmp/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>${RESULTSDIR}cmr.log 2>&1 & + sleep 10 + ${JAVABIN}java ${JAVAARGS_INSPECTIT_NOCHARTING} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill $! + sleep 10 + [ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log + [ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log + rm -rf ${BASEDIR}storage/ + rm -rf ${BASEDIR}db/ + rm -rf ${BASEDIR}logs/ + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}inspectit.log + echo >>${BASEDIR}inspectit.log + sync + sleep ${SLEEPTIME} + + # InspectIT (full) + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} InspectIT (full)" + echo " # ${i}.${j}.${k} InspectIT (full)" >>${BASEDIR}inspectit.log + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java \ + -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \ + -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \ + -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \ + -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \ + -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \ + -Xloggc:${BASEDIR}tmp/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>${RESULTSDIR}cmr.log 2>&1 & + sleep 10 + ${JAVABIN}java ${JAVAARGS_INSPECTIT_FULL} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill $! + sleep 10 + [ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log + [ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log + rm -rf ${BASEDIR}storage/ + rm -rf ${BASEDIR}db/ + rm -rf ${BASEDIR}logs/ + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}inspectit.log + echo >>${BASEDIR}inspectit.log + sync + sleep ${SLEEPTIME} + +done +zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat +rm -rf ${RESULTSDIR}stat/ +mv ${BASEDIR}inspectit.log ${RESULTSDIR}inspectit.log +[ -f ${RESULTSDIR}hotspot-1-${RECURSIONDEPTH}-1.log ] && grep "<task " ${RESULTSDIR}hotspot-*.log >${RESULTSDIR}log.log +[ -f ${BASEDIR}errorlog.txt ] && mv ${BASEDIR}errorlog.txt ${RESULTSDIR} + +## Generate Results file +# Timeseries +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-timeseries.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","InspectIT (disabled)","InspectIT (no storage)","InspectIT (no charting)","InspectIT (full)") +configs.colors=c("black","red","blue","green","pink") +results.count=${TOTALCALLS} +tsconf.min=(${METHODTIME}/1000) +tsconf.max=(${METHODTIME}/1000)+300 +source("${RSCRIPTDIR}timeseries.r") +EOF +# Timeseries-Average +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-timeseries-average.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","InspectIT (disabled)","InspectIT (no storage)","InspectIT (no charting)","InspectIT (full)") +configs.colors=c("black","red","blue","green","pink") +results.count=${TOTALCALLS} +tsconf.min=(${METHODTIME}/1000) +tsconf.max=(${METHODTIME}/1000)+300 +source("${RSCRIPTDIR}timeseries-average.r") +EOF +# Bars +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +outtxt_fn="${RESULTSDIR}results-text.txt" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","InspectIT (disabled)","InspectIT (no storage)","InspectIT (no charting)","InspectIT (full)") +results.count=${TOTALCALLS} +results.skip=${TOTALCALLS}/2 +source("${RSCRIPTDIR}stats.r") +EOF + +## Clean up raw results +zip -jqr ${RESULTSDIR}results.zip ${RAWFN}* +rm -f ${RAWFN}* +[ -f ${BASEDIR}nohup.out ] && cp ${BASEDIR}nohup.out ${RESULTSDIR} +[ -f ${BASEDIR}nohup.out ] && > ${BASEDIR}nohup.out diff --git a/frameworks/inspectIT/README b/frameworks/inspectIT/README index 12d7ce9..2340fa6 100644 --- a/frameworks/inspectIT/README +++ b/frameworks/inspectIT/README @@ -4,5 +4,5 @@ agent/ -> add from download CMR/ -> add from download config/ -> present and preconfigured -to clean: -remove in CMR the folders db/ logs/ storage/ + +the -inner experiments require a customized version of inspectIT, that is able to deactivate parts of its probes diff --git a/frameworks/inspectIT/benchmark-isequence-inner.sh b/frameworks/inspectIT/benchmark-isequence-inner.sh new file mode 100644 index 0000000..96b150b --- /dev/null +++ b/frameworks/inspectIT/benchmark-isequence-inner.sh @@ -0,0 +1,242 @@ +#!/bin/bash + +JAVABIN="" + +RSCRIPTDIR=r/ +BASEDIR=./ +RESULTSDIR="${BASEDIR}tmp/results-inspectit/" + +SLEEPTIME=30 ## 30 +NUM_LOOPS=10 ## 10 +THREADS=1 ## 1 +RECURSIONDEPTH=10 ## 10 +TOTALCALLS=2000000 ## 2000000 +METHODTIME=0 ## 500000 + +#MOREPARAMS="--quickstart" +MOREPARAMS="${MOREPARAMS}" + +TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} ` +echo "Experiment will take circa ${TIME} seconds." + +echo "Removing and recreating '$RESULTSDIR'" +(rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR} +mkdir ${RESULTSDIR}stat/ + +# Clear inspectit.log and initialize logging +rm -f ${BASEDIR}inspectit.log +touch ${BASEDIR}inspectit.log +mkdir ${BASEDIR}logs/ + +RAWFN="${RESULTSDIR}raw" + +JAVAARGS="-server" +JAVAARGS="${JAVAARGS} -d64" +JAVAARGS="${JAVAARGS} -Xms1G -Xmx4G" +JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation" +#JAVAARGS="${JAVAARGS} -XX:+PrintInlining" +#JAVAARGS="${JAVAARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation" +#JAVAARGS="${JAVAARGS} -Djava.compiler=NONE" +JAR="-jar OverheadEvaluationMicrobenchmark.jar" + +JAVAARGS_NOINSTR="${JAVAARGS}" +JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}agent/inspectit-agent-mod.jar -Djava.util.logging.config.file=${BASEDIR}config/logging.properties -Dinspectit.config=${BASEDIR}config/isequence/" +JAVAARGS_INSPECTIT_DISABLED="${JAVAARGS_LTW} -Dinspectit.disableProbe=true" +JAVAARGS_INSPECTIT_NOSTORAGE="${JAVAARGS_LTW} -Dinspectit.disableStorage=true" +JAVAARGS_INSPECTIT_FULL="${JAVAARGS_LTW}" + +## Write configuration +uname -a >${RESULTSDIR}configuration.txt +${JAVABIN}java ${JAVAARGS} -version 2>>${RESULTSDIR}configuration.txt +echo "JAVAARGS: ${JAVAARGS}" >>${RESULTSDIR}configuration.txt +echo "" >>${RESULTSDIR}configuration.txt +echo "Runtime: circa ${TIME} seconds" >>${RESULTSDIR}configuration.txt +echo "" >>${RESULTSDIR}configuration.txt +echo "SLEEPTIME=${SLEEPTIME}" >>${RESULTSDIR}configuration.txt +echo "NUM_LOOPS=${NUM_LOOPS}" >>${RESULTSDIR}configuration.txt +echo "TOTALCALLS=${TOTALCALLS}" >>${RESULTSDIR}configuration.txt +echo "METHODTIME=${METHODTIME}" >>${RESULTSDIR}configuration.txt +echo "THREADS=${THREADS}" >>${RESULTSDIR}configuration.txt +echo "RECURSIONDEPTH=${RECURSIONDEPTH}" >>${RESULTSDIR}configuration.txt +sync + +## Execute Benchmark +for ((i=1;i<=${NUM_LOOPS};i+=1)); do + j=${RECURSIONDEPTH} + k=0 + echo "## Starting iteration ${i}/${NUM_LOOPS}" + echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASEDIR}inspectit.log + + # No instrumentation + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} No instrumentation" + echo " # ${i}.${j}.${k} No instrumentation" >>${BASEDIR}inspectit.log + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java ${JAVAARGS_NOINSTR} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}inspectit.log + echo >>${BASEDIR}inspectit.log + sync + sleep ${SLEEPTIME} + + # InspectIT (disabled) + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} InspectIT (disabled)" + echo " # ${i}.${j}.${k} InspectIT (disabled)" >>${BASEDIR}inspectit.log + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java \ + -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \ + -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \ + -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \ + -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \ + -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \ + -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 & + sleep 10 + ${JAVABIN}java ${JAVAARGS_INSPECTIT_DISABLED} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill $! + sleep 10 + rm -rf ${BASEDIR}storage/ + rm -rf ${BASEDIR}db/ + #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log + #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log + #rm -rf ${BASEDIR}logs/ + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}inspectit.log + echo >>${BASEDIR}inspectit.log + sync + sleep ${SLEEPTIME} + + # InspectIT (no storage) + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} InspectIT (no storage)" + echo " # ${i}.${j}.${k} InspectIT (no storage)" >>${BASEDIR}inspectit.log + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java \ + -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \ + -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \ + -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \ + -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \ + -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \ + -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 & + sleep 10 + ${JAVABIN}java ${JAVAARGS_INSPECTIT_NOSTORAGE} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill $! + sleep 10 + rm -rf ${BASEDIR}storage/ + rm -rf ${BASEDIR}db/ + #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log + #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log + #rm -rf ${BASEDIR}logs/ + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}inspectit.log + echo >>${BASEDIR}inspectit.log + sync + sleep ${SLEEPTIME} + + # InspectIT (full) + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} InspectIT (full)" + echo " # ${i}.${j}.${k} InspectIT (full)" >>${BASEDIR}inspectit.log + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java \ + -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \ + -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \ + -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \ + -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \ + -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \ + -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 & + sleep 10 + ${JAVABIN}java ${JAVAARGS_INSPECTIT_FULL} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill $! + sleep 10 + rm -rf ${BASEDIR}storage/ + rm -rf ${BASEDIR}db/ + #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log + #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log + #rm -rf ${BASEDIR}logs/ + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}inspectit.log + echo >>${BASEDIR}inspectit.log + sync + sleep ${SLEEPTIME} + +done +zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat +rm -rf ${RESULTSDIR}stat/ +mv ${BASEDIR}logs/ ${RESULTSDIR} +mv ${BASEDIR}inspectit.log ${RESULTSDIR}inspectit.log +[ -f ${RESULTSDIR}hotspot-1-${RECURSIONDEPTH}-1.log ] && grep "<task " ${RESULTSDIR}hotspot-*.log >${RESULTSDIR}log.log +[ -f ${BASEDIR}errorlog.txt ] && mv ${BASEDIR}errorlog.txt ${RESULTSDIR} + +## Generate Results file +# Timeseries +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-timeseries.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","InspectIT (disabled)","InspectIT (no storage)","InspectIT (full)") +configs.colors=c("black","red","blue","green") +results.count=${TOTALCALLS} +tsconf.min=(${METHODTIME}/1000) +tsconf.max=(${METHODTIME}/1000)+100 +source("${RSCRIPTDIR}timeseries.r") +EOF +# Timeseries-Average +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-timeseries-average.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","InspectIT (disabled)","InspectIT (no storage)","InspectIT (full)") +configs.colors=c("black","red","blue","green") +results.count=${TOTALCALLS} +tsconf.min=(${METHODTIME}/1000) +tsconf.max=(${METHODTIME}/1000)+100 +source("${RSCRIPTDIR}timeseries-average.r") +EOF +# Bars +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +outtxt_fn="${RESULTSDIR}results-text.txt" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","InspectIT (disabled)","InspectIT (no storage)","InspectIT (full)") +results.count=${TOTALCALLS} +results.skip=${TOTALCALLS}/2 +source("${RSCRIPTDIR}stats.r") +EOF + +## Clean up raw results +zip -jqr ${RESULTSDIR}results.zip ${RAWFN}* +rm -f ${RAWFN}* +[ -f ${BASEDIR}nohup.out ] && cp ${BASEDIR}nohup.out ${RESULTSDIR} +[ -f ${BASEDIR}nohup.out ] && > ${BASEDIR}nohup.out diff --git a/frameworks/inspectIT/benchmark-timer-inner.sh b/frameworks/inspectIT/benchmark-timer-inner.sh new file mode 100644 index 0000000..b988e27 --- /dev/null +++ b/frameworks/inspectIT/benchmark-timer-inner.sh @@ -0,0 +1,242 @@ +#!/bin/bash + +JAVABIN="" + +RSCRIPTDIR=r/ +BASEDIR=./ +RESULTSDIR="${BASEDIR}tmp/results-inspectit/" + +SLEEPTIME=30 ## 30 +NUM_LOOPS=10 ## 10 +THREADS=1 ## 1 +RECURSIONDEPTH=10 ## 10 +TOTALCALLS=2000000 ## 2000000 +METHODTIME=0 ## 500000 + +#MOREPARAMS="--quickstart" +MOREPARAMS="${MOREPARAMS}" + +TIME=`expr ${METHODTIME} \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} + ${SLEEPTIME} \* 4 \* ${NUM_LOOPS} \* ${RECURSIONDEPTH} + 50 \* ${TOTALCALLS} / 1000000000 \* 4 \* ${RECURSIONDEPTH} \* ${NUM_LOOPS} ` +echo "Experiment will take circa ${TIME} seconds." + +echo "Removing and recreating '$RESULTSDIR'" +(rm -rf ${RESULTSDIR}) && mkdir ${RESULTSDIR} +mkdir ${RESULTSDIR}stat/ + +# Clear inspectit.log and initialize logging +rm -f ${BASEDIR}inspectit.log +touch ${BASEDIR}inspectit.log +mkdir ${BASEDIR}logs/ + +RAWFN="${RESULTSDIR}raw" + +JAVAARGS="-server" +JAVAARGS="${JAVAARGS} -d64" +JAVAARGS="${JAVAARGS} -Xms1G -Xmx4G" +JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation" +#JAVAARGS="${JAVAARGS} -XX:+PrintInlining" +#JAVAARGS="${JAVAARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation" +#JAVAARGS="${JAVAARGS} -Djava.compiler=NONE" +JAR="-jar OverheadEvaluationMicrobenchmark.jar" + +JAVAARGS_NOINSTR="${JAVAARGS}" +JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}agent/inspectit-agent-mod.jar -Djava.util.logging.config.file=${BASEDIR}config/logging.properties -Dinspectit.config=${BASEDIR}config/timer/ +JAVAARGS_INSPECTIT_DISABLED="${JAVAARGS_LTW} -Dinspectit.disableProbe=true" +JAVAARGS_INSPECTIT_NOSTORAGE="${JAVAARGS_LTW} -Dinspectit.disableStorage=true" +JAVAARGS_INSPECTIT_FULL="${JAVAARGS_LTW}" + +## Write configuration +uname -a >${RESULTSDIR}configuration.txt +${JAVABIN}java ${JAVAARGS} -version 2>>${RESULTSDIR}configuration.txt +echo "JAVAARGS: ${JAVAARGS}" >>${RESULTSDIR}configuration.txt +echo "" >>${RESULTSDIR}configuration.txt +echo "Runtime: circa ${TIME} seconds" >>${RESULTSDIR}configuration.txt +echo "" >>${RESULTSDIR}configuration.txt +echo "SLEEPTIME=${SLEEPTIME}" >>${RESULTSDIR}configuration.txt +echo "NUM_LOOPS=${NUM_LOOPS}" >>${RESULTSDIR}configuration.txt +echo "TOTALCALLS=${TOTALCALLS}" >>${RESULTSDIR}configuration.txt +echo "METHODTIME=${METHODTIME}" >>${RESULTSDIR}configuration.txt +echo "THREADS=${THREADS}" >>${RESULTSDIR}configuration.txt +echo "RECURSIONDEPTH=${RECURSIONDEPTH}" >>${RESULTSDIR}configuration.txt +sync + +## Execute Benchmark +for ((i=1;i<=${NUM_LOOPS};i+=1)); do + j=${RECURSIONDEPTH} + k=0 + echo "## Starting iteration ${i}/${NUM_LOOPS}" + echo "## Starting iteration ${i}/${NUM_LOOPS}" >>${BASEDIR}inspectit.log + + # No instrumentation + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} No instrumentation" + echo " # ${i}.${j}.${k} No instrumentation" >>${BASEDIR}inspectit.log + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java ${JAVAARGS_NOINSTR} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}inspectit.log + echo >>${BASEDIR}inspectit.log + sync + sleep ${SLEEPTIME} + + # InspectIT (disabled) + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} InspectIT (disabled)" + echo " # ${i}.${j}.${k} InspectIT (disabled)" >>${BASEDIR}inspectit.log + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java \ + -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \ + -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \ + -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \ + -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \ + -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \ + -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 & + sleep 10 + ${JAVABIN}java ${JAVAARGS_INSPECTIT_DISABLED} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill $! + sleep 10 + rm -rf ${BASEDIR}storage/ + rm -rf ${BASEDIR}db/ + #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log + #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log + #rm -rf ${BASEDIR}logs/ + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}inspectit.log + echo >>${BASEDIR}inspectit.log + sync + sleep ${SLEEPTIME} + + # InspectIT (no storage) + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} InspectIT (no storage)" + echo " # ${i}.${j}.${k} InspectIT (no storage)" >>${BASEDIR}inspectit.log + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java \ + -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \ + -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \ + -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \ + -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \ + -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \ + -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 & + sleep 10 + ${JAVABIN}java ${JAVAARGS_INSPECTIT_NOSTORAGE} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill $! + sleep 10 + rm -rf ${BASEDIR}storage/ + rm -rf ${BASEDIR}db/ + #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log + #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log + #rm -rf ${BASEDIR}logs/ + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}inspectit.log + echo >>${BASEDIR}inspectit.log + sync + sleep ${SLEEPTIME} + + # InspectIT (full) + k=`expr ${k} + 1` + echo " # ${i}.${j}.${k} InspectIT (full)" + echo " # ${i}.${j}.${k} InspectIT (full)" >>${BASEDIR}inspectit.log + sar -o ${RESULTSDIR}stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 & + ${JAVABIN}java \ + -Xms1024m -Xmx1024m -Xmn384M -XX:MaxPermSize=128m -XX:PermSize=128m -XX:+UseConcMarkSweepGC \ + -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC \ + -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \ + -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \ + -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \ + -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 & + sleep 10 + ${JAVABIN}java ${JAVAARGS_INSPECTIT_FULL} ${JAR} \ + --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ + --totalcalls ${TOTALCALLS} \ + --methodtime ${METHODTIME} \ + --totalthreads ${THREADS} \ + --recursiondepth ${j} \ + ${MOREPARAMS} + kill $! + sleep 10 + rm -rf ${BASEDIR}storage/ + rm -rf ${BASEDIR}db/ + #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log + #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log + #rm -rf ${BASEDIR}logs/ + kill %sar + [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log + echo >>${BASEDIR}inspectit.log + echo >>${BASEDIR}inspectit.log + sync + sleep ${SLEEPTIME} + +done +zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat +rm -rf ${RESULTSDIR}stat/ +mv ${BASEDIR}logs/ ${RESULTSDIR} +mv ${BASEDIR}inspectit.log ${RESULTSDIR}inspectit.log +[ -f ${RESULTSDIR}hotspot-1-${RECURSIONDEPTH}-1.log ] && grep "<task " ${RESULTSDIR}hotspot-*.log >${RESULTSDIR}log.log +[ -f ${BASEDIR}errorlog.txt ] && mv ${BASEDIR}errorlog.txt ${RESULTSDIR} + +## Generate Results file +# Timeseries +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-timeseries.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","InspectIT (disabled)","InspectIT (no storage)","InspectIT (full)") +configs.colors=c("black","red","blue","green") +results.count=${TOTALCALLS} +tsconf.min=(${METHODTIME}/1000) +tsconf.max=(${METHODTIME}/1000)+300 +source("${RSCRIPTDIR}timeseries.r") +EOF +# Timeseries-Average +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +output_fn="${RESULTSDIR}results-timeseries-average.pdf" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","InspectIT (disabled)","InspectIT (no storage)","InspectIT (full)") +configs.colors=c("black","red","blue","green") +results.count=${TOTALCALLS} +tsconf.min=(${METHODTIME}/1000) +tsconf.max=(${METHODTIME}/1000)+300 +source("${RSCRIPTDIR}timeseries-average.r") +EOF +# Bars +R --vanilla --silent <<EOF +results_fn="${RAWFN}" +outtxt_fn="${RESULTSDIR}results-text.txt" +configs.loop=${NUM_LOOPS} +configs.recursion=c(${RECURSIONDEPTH}) +configs.labels=c("No Probe","InspectIT (disabled)","InspectIT (no storage)","InspectIT (full)") +results.count=${TOTALCALLS} +results.skip=${TOTALCALLS}/2 +source("${RSCRIPTDIR}stats.r") +EOF + +## Clean up raw results +zip -jqr ${RESULTSDIR}results.zip ${RAWFN}* +rm -f ${RAWFN}* +[ -f ${BASEDIR}nohup.out ] && cp ${BASEDIR}nohup.out ${RESULTSDIR} +[ -f ${BASEDIR}nohup.out ] && > ${BASEDIR}nohup.out diff --git a/frameworks/inspectIT/benchmark.sh b/frameworks/inspectIT/benchmark.sh index 212a0cf..0288baf 100644 --- a/frameworks/inspectIT/benchmark.sh +++ b/frameworks/inspectIT/benchmark.sh @@ -26,6 +26,7 @@ mkdir ${RESULTSDIR}stat/ # Clear inspectit.log and initialize logging rm -f ${BASEDIR}inspectit.log touch ${BASEDIR}inspectit.log +mkdir ${BASEDIR}logs/ RAWFN="${RESULTSDIR}raw" @@ -41,7 +42,7 @@ JAR="-jar OverheadEvaluationMicrobenchmark.jar" JAVAARGS_NOINSTR="${JAVAARGS}" JAVAARGS_LTW="${JAVAARGS} -javaagent:${BASEDIR}agent/inspectit-agent.jar -Djava.util.logging.config.file=${BASEDIR}config/logging.properties" JAVAARGS_INSPECTIT_MINIMAL="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/minimal/" -JAVAARGS_INSPECTIT_FULL="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/full/" +JAVAARGS_INSPECTIT_FULL="${JAVAARGS_LTW} -Dinspectit.config=${BASEDIR}config/timer/" ## Write configuration uname -a >${RESULTSDIR}configuration.txt @@ -95,7 +96,7 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \ -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \ -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \ - -Xloggc:${BASEDIR}tmp/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>${RESULTSDIR}cmr.log 2>&1 & + -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 & sleep 10 ${JAVABIN}java ${JAVAARGS_INSPECTIT_MINIMAL} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ @@ -106,11 +107,11 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do ${MOREPARAMS} kill $! sleep 10 - [ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log - [ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log rm -rf ${BASEDIR}storage/ rm -rf ${BASEDIR}db/ - rm -rf ${BASEDIR}logs/ + #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log + #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log + #rm -rf ${BASEDIR}logs/ kill %sar [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log echo >>${BASEDIR}inspectit.log @@ -148,7 +149,7 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 \ -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+HeapDumpOnOutOfMemoryError \ -server -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution \ - -Xloggc:${BASEDIR}tmp/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>${RESULTSDIR}cmr.log 2>&1 & + -Xloggc:${BASEDIR}logs/gc.log -Dinspectit.logging.config=CMR/logging-config.xml -jar CMR/inspectit-cmr.jar 1>>${BASEDIR}logs/out.log 2>&1 & sleep 10 ${JAVABIN}java ${JAVAARGS_INSPECTIT_FULL} ${JAR} \ --output-filename ${RAWFN}-${i}-${j}-${k}.csv \ @@ -159,12 +160,12 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do ${MOREPARAMS} kill $! sleep 10 - [ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log - [ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log rm -rf ${BASEDIR}storage/ rm -rf ${BASEDIR}db/ - rm -rf ${BASEDIR}logs/ - kill %sar + #[ -f ${BASEDIR}tmp/gc.log ] && rm -f ${BASEDIR}tmp/gc.log + #[ -f ${RESULTSDIR}cmr.log ] && rm -f ${RESULTSDIR}cmr.log + #rm -rf ${BASEDIR}logs/ + kill %sar [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log echo >>${BASEDIR}inspectit.log echo >>${BASEDIR}inspectit.log @@ -175,6 +176,7 @@ done zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat rm -rf ${RESULTSDIR}stat/ mv ${BASEDIR}inspectit.log ${RESULTSDIR}inspectit.log +mv ${BASEDIR}logs/ ${RESULTSDIR} [ -f ${RESULTSDIR}hotspot-1-${RECURSIONDEPTH}-1.log ] && grep "<task " ${RESULTSDIR}hotspot-*.log >${RESULTSDIR}log.log [ -f ${BASEDIR}errorlog.txt ] && mv ${BASEDIR}errorlog.txt ${RESULTSDIR} diff --git a/frameworks/inspectIT/config/isequence/inspectit-agent.cfg b/frameworks/inspectIT/config/isequence/inspectit-agent.cfg new file mode 100644 index 0000000..f81e35b --- /dev/null +++ b/frameworks/inspectIT/config/isequence/inspectit-agent.cfg @@ -0,0 +1,49 @@ +## repository <IP> <port> <Agent Name> +############################################# +repository localhost 9070 inspectIT + +## method-sensor-type <name> <fully-qualified-name> <priority> [<additional options>] +##################################################################################### +# method-sensor-type average-timer info.novatec.inspectit.agent.sensor.method.averagetimer.AverageTimerSensor HIGH stringLength=100 +method-sensor-type timer info.novatec.inspectit.agent.sensor.method.timer.TimerSensor MAX stringLength=100 +method-sensor-type isequence info.novatec.inspectit.agent.sensor.method.invocationsequence.InvocationSequenceSensor INVOC stringLength=100 +method-sensor-type jdbc-connection info.novatec.inspectit.agent.sensor.method.jdbc.ConnectionSensor MIN +method-sensor-type jdbc-prepared-statement info.novatec.inspectit.agent.sensor.method.jdbc.PreparedStatementSensor MIN stringLength=1000 +method-sensor-type jdbc-prepared-statement-parameter info.novatec.inspectit.agent.sensor.method.jdbc.PreparedStatementParameterSensor MIN +method-sensor-type jdbc-statement info.novatec.inspectit.agent.sensor.method.jdbc.StatementSensor MIN stringLength=1000 + +## exception-sensor-type <fully-qualified-name> [<additional options>] +###################################################################### +exception-sensor-type info.novatec.inspectit.agent.sensor.exception.ExceptionSensor mode=simple stringLength=500 + +## platform-sensor-type <fully-qualified-name> [<additional options>] +##################################################################### +platform-sensor-type info.novatec.inspectit.agent.sensor.platform.ClassLoadingInformation +platform-sensor-type info.novatec.inspectit.agent.sensor.platform.CompilationInformation +platform-sensor-type info.novatec.inspectit.agent.sensor.platform.MemoryInformation +platform-sensor-type info.novatec.inspectit.agent.sensor.platform.CpuInformation +platform-sensor-type info.novatec.inspectit.agent.sensor.platform.RuntimeInformation +platform-sensor-type info.novatec.inspectit.agent.sensor.platform.SystemInformation +platform-sensor-type info.novatec.inspectit.agent.sensor.platform.ThreadInformation + +## send-strategy <fully-qualified-name> +####################################### +send-strategy info.novatec.inspectit.agent.sending.impl.TimeStrategy time=5000 + +## buffer-strategy <fully-qualified-name> +######################################### +buffer-strategy info.novatec.inspectit.agent.buffer.impl.SimpleBufferStrategy + +## Ignore classes settings +######################################### +exclude-class info.novatec.inspectit.* +exclude-class $Proxy* +exclude-class sun.* +exclude-class java.lang.ThreadLocal +exclude-class java.lang.ref.Reference +exclude-class *_WLStub +exclude-class *[] + +## INSTRUMENTATION +################## +sensor isequence mooBench.monitoredApplication.MonitoredClass monitoredMethod interface=true p=0;Source; f=LastOperator;lastOperator f=LastOutput;jlbOutput.text diff --git a/frameworks/inspectIT/config/full/inspectit-agent.cfg b/frameworks/inspectIT/config/timer/inspectit-agent.cfg similarity index 100% rename from frameworks/inspectIT/config/full/inspectit-agent.cfg rename to frameworks/inspectIT/config/timer/inspectit-agent.cfg -- GitLab