Newer
Older
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#
# inspectIT benchmark script
#
# Usage: benchmark.sh
# configure base dir
BASE_DIR=$(cd "$(dirname "$0")"; pwd)
#
# source functionality
#
if [ ! -d "${BASE_DIR}" ] ; then
echo "Base directory ${BASE_DIR} does not exist."
exit 1
fi
# load configuration and common functions
if [ -f "${BASE_DIR}/config" ] ; then
source "${BASE_DIR}/config.rc"
else
echo "Missing configuration: ${BASE_DIR}/config.rc"
exit 1
fi
if [ -f "${BASE_DIR}/../common-functions.sh" ] ; then
source "${BASE_DIR}/../common-functions.sh"
else
echo "Missing library: ${BASE_DIR}/../common-functions.sh"
exit 1
fi
if [ -f "${BASE_DIR}/functions.sh" ] ; then
source "${BASE_DIR}/functions.sh"
else
echo "Missing: ${BASE_DIR}/functions.sh"
exit 1
fi
if [ -f "${BASE_DIR}/labels.sh" ] ; then
source "${BASE_DIR}/labels.sh"
else
echo "Missing file: ${BASE_DIR}/labels.sh"
exit 1
fi
info "----------------------------------"
info "Setup..."
info "----------------------------------"
# load agent
getAgent
checkFile MooBench "${BASE_DIR}/MooBench.jar"
checkFile log "${BASE_DIR}/inspectIT.log" clean
checkDirectory results-directory "${RESULTS_DIR}" recreate
checkExecutable java "${JAVA_BIN}"
checkFile R-script "${RSCRIPT_PATH}"
#
# Run benchmark
#
info "----------------------------------"
info "Running benchmark..."
info "----------------------------------"
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} `
info "Experiment will take circa ${TIME} seconds."
JAVA_ARGS="-server"
JAVA_ARGS="${JAVA_ARGS} -Xms1G -Xmx2G"
JAVA_ARGS="${JAVA_ARGS} -verbose:gc "
JAR="-jar ${BASE_DIR}/MooBench.jar --application moobench.application.MonitoredClassSimple"
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/"
info "RESULTS_DIR: ${RESULTS_DIR}"
info "RAWFN: $RAWFN"
writeConfiguration
for ((i=1;i<=${NUM_OF_LOOPS};i+=1)); do
info "## Starting iteration ${i}/${NUM_OF_LOOPS}"
echo "## Starting iteration ${i}/${NUM_OF_LOOPS}" >> "${BASE_DIR}/inspectIT.log"
runInspectITDeactivated
cleanup
David Georg Reichelt
committed
runInspectITNullWriter
cleanup
runInspectITPrometheus
cleanup
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)