diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2021-09-09 16:21:41 +0200 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2021-09-10 16:13:23 +0200 |
| commit | f20d615e3f6e5b9d02526ac033778fb0419fed4e (patch) | |
| tree | 27f35a6bd2bb9a157bd88755ea567bdeb0eb6156 /opendc-experiments/opendc-experiments-capelin | |
| parent | 58ac6e203f38ea0122d08c74adf7644c478c3afe (diff) | |
feat(simulator): Support generic distribution in fault injector
This change adds support for specifying the distribution of the
failures, group size and duration for the fault injector.
Diffstat (limited to 'opendc-experiments/opendc-experiments-capelin')
| -rw-r--r-- | opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt b/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt index 0230409e..3d605300 100644 --- a/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt +++ b/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt @@ -26,6 +26,8 @@ import io.opentelemetry.api.metrics.MeterProvider import io.opentelemetry.sdk.metrics.SdkMeterProvider import kotlinx.coroutines.* import kotlinx.coroutines.channels.Channel +import org.apache.commons.math3.distribution.LogNormalDistribution +import org.apache.commons.math3.random.Well19937c import org.opendc.compute.api.* import org.opendc.compute.service.ComputeService import org.opendc.compute.service.scheduler.ComputeScheduler @@ -98,15 +100,16 @@ fun createFaultInjector( random: Random, failureInterval: Double ): FaultInjector { + val rng = Well19937c(random.nextLong()) + // Parameters from A. Iosup, A Framework for the Study of Grid Inter-Operation Mechanisms, 2009 // GRID'5000 return CorrelatedFaultInjector( coroutineScope, clock, - iatScale = ln(failureInterval), iatShape = 1.03, // Hours - sizeScale = ln(2.0), sizeShape = ln(1.0), // Expect 2 machines, with variation of 1 - dScale = ln(60.0), dShape = ln(60.0 * 8), // Minutes - random = random + iat = LogNormalDistribution(rng, ln(failureInterval), 1.03), + size = LogNormalDistribution(rng, 1.88, 1.25), + duration = LogNormalDistribution(rng, 8.89, 2.71) ) } |
