Something went wrong on our end
The source project of this merge request has been removed.
Add Support for Benchmarking Strategies
All threads resolved!
All threads resolved!
Compare changes
- Simon Ehrenstein authored
+ 17
− 8
@@ -145,23 +145,32 @@ Depending on your setup, some additional adjustments may be necessary:
@@ -145,23 +145,32 @@ Depending on your setup, some additional adjustments may be necessary:
The `./theodolite.sh` is the entrypoint for all benchmark executions. Is has to be called as follows:
./theodolite.sh <use-case> <wl-values> <instances> <partitions> <cpu-limit> <memory-limit> <commit-interval> <duration>
* `<use-case>`: Stream processing use case to be benchmarked. Has to be one of `1`, `2`, `3` or `4`.
* `<wl-values>`: Values for the workload generator to be tested, separated by commas. For example `100000, 200000, 300000`.
* `<instances>`: Numbers of instances to be benchmarked, separated by commas. For example `1, 2, 3, 4`.
* `<strategy>`: The benchmarking strategy. Can be set to `default`, `step` or `binary-search`. For more details see Section _Benchmarking Strategies_. Default `default`.
* `default`: Execute a subexperiment for each combination of the number of replicas (N), and the number of workload intensities (M). The amount of executed subexperiments is always N*M.
* `step`: A heuristic which works as follows: After each subexperiment, it is checked, whether the application could handle the workload. If the workload could be handled, the workload intensity is increased in the next subexperiment. Otherwise, the workload intensity is kept the same and the number of instances is increased. The amount of executed sub-experiments is at most N+M-1.
* `linear-search`: A heuristic which works as follows: For each dimension value, execute one lag experiment for all number of instances within the current domain. The execution order is from the lowest number of instances to the highest amount of instances and the execution for each dimension value is stopped, when a suitable amount of instances is found or if all lag experiments for the dimension value were not successful.
* `binary-search`: A heuristic which works as follows: For each number of instances, a binary-search like strategy is used to determine the workload intensity, to which the system handle the workload. The limiting workload intensity is taken into consideration when executing sub-experiments for other number of replicas. The number of executed sub-experiments is at most N*log(M).
* `binary-search`: A heuristic which works as follows: For each dimension value, execute one lag experiment for all number of instances within the current domain. The execution order is in a binary-search-like manner. The execution is stopped, when a suitable amount of instances is found or if all lag experiments for the dimension value were not successful.