Skip to content
Snippets Groups Projects
Commit f2f669fe authored by David Georg Reichelt's avatar David Georg Reichelt
Browse files

Update readme

parent 67a5df97
No related branches found
No related tags found
No related merge requests found
......@@ -3,52 +3,32 @@ The MooBench Monitoring Overhead Micro-Benchmark
Website: http://kieker-monitoring.net/MooBench
Note: Please note that we are currently reorganizing the project structure.
Thus, the documentation might be outdated.
The MooBench micro-benchmarks can be used to quantify the performance overhead caused by monitoring framework components.
The MooBench micro-benchmarks can be used to quantify the performance
overhead caused by monitoring framework components.
Currenly (directly) supported monitoring frameworks are:
Currenly (fully) supported monitoring frameworks are:
* Kieker (http://kieker-monitoring.net)
* OpenTelemetry (https://opentelemetry.io/)
* SPASS-meter (https://github.com/SSEHUB/spassMeter.git)
The gradle buildfile is provided to prepare the benchmark. To build
the monitored application and copy it to the framework you want to benchmark,
just execute `./gradlew assemble`
All experiments are started with the provided "External Controller"
scripts. These scripts are available inside the respective bin/
directory. Currently only shell (.sh) scripts are provided. These
scripts have been developed on Solaris environments. Thus, minor
adjustments might be required for common Linux operatong systems,
such as Ubuntu. Additionally, several Eclipse launch targets are
provided for debugging purposes.
The default execution of the benchmark requires a 64Bit JVM!
However, this behavior can be changed in the respective .sh scripts.
Initially, the following steps are required:
1. Make sure, that you've installed R (http://www.r-project.org/) to
generate the results.
1. Make sure, that you've installed R (http://www.r-project.org/) to generate the results (Ubuntu: `sudo apt install r-base`).
2. Compile the application by calling `./gradlew assemble`.
Execution of the micro-benchmark:
All benchmarks are started with calls of .sh scripts in the bin folder.
The top of the files include some configuration parameters, such as
All experiments are started with the provided "External Controller" scripts. The following scripts are available
* for Kieker: In `frameworks/Kieker/scripts/benchmark.sh` for regular execution and `frameworks/Kieker/scripts/runExponentialSizes.sh` for execution of different call tree depth sizes
* for OpenTelemetry: `frameworks/opentelemetry/benchmark.sh` for regular execution and `frameworks/opentelemetry/runExponentialSizes.sh` for execution of different call tree depth sizes
All scripts have been tested on Ubuntu and Raspbian.
The execution may be parameterized by the following environment variables:
* SLEEPTIME between executions (default 30 seconds)
* NUM_LOOPS number of repetitions (default 10)
* THREADS concurrent benchmarking threads (default 1)
* MAXRECURSIONDEPTH recursion up to this depth (default 10)
* TOTALCALLS the duration of the benchmark (deafult 2,000,000 calls)
* METHODTIME the time per monitored call (default 0 ns or 500 us)
If they are unset, the values are set via `frameworks/common-function.sh`.
Furthermore some JVM arguments can be adjusted:
* JAVAARGS JVM Arguments (e.g., available memory)
Typical call (using Solaris):
$ nohup ./benchmark.sh & sleep 1;tail +0cf nohup.out
Typical call (using Ubuntu):
$ export SLEEPTIME=1 && ./gradlew assemble && cd frameworks/opentelemetry/ && ./benchmark.sh
Analyzing the data:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment