From b3e8e3d196de8b8c1bb904bfb3c6641415cf72bb Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Tue, 17 Mar 2020 15:52:10 +0100 Subject: feat: Use Weilbull distribution for failures --- .../main/kotlin/com/atlarge/opendc/experiments/sc20/Sc20Monitor.kt | 3 ++- .../main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'opendc/opendc-experiments-sc20/src/main') diff --git a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/Sc20Monitor.kt b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/Sc20Monitor.kt index d3b2d5c6..40cb9719 100644 --- a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/Sc20Monitor.kt +++ b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/Sc20Monitor.kt @@ -18,10 +18,11 @@ class Sc20Monitor( private var failed: Int = 0 init { - outputFile.write("time,requestedBurst,grantedBurst,numberOfDeployedImages,server,hostUsage,powerDraw\n") + outputFile.write("time,requestedBurst,grantedBurst,numberOfDeployedImages,server,hostUsage,powerDraw,failedVms\n") } override suspend fun onUpdate(server: Server, previousState: ServerState) { + println("${simulationContext.clock.instant()} ${server.uid} ${server.state}") if (server.state == ServerState.ERROR) { failed++ } diff --git a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt index a1619fe2..69174f0f 100644 --- a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt +++ b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt @@ -89,7 +89,6 @@ fun main(args: Array) { val provider = ServiceLoader.load(SimulationEngineProvider::class.java).first() val system = provider("test") val root = system.newDomain("root") - val chan = Channel(Channel.CONFLATED) root.launch { @@ -118,7 +117,8 @@ fun main(args: Array) { root.launch { chan.receive() - val faultInjector = UncorrelatedFaultInjector(mu = 2e7) + // Parameters from A. Iosup, A Framework for the Study of Grid Inter-Operation Mechanisms, 2009 + val faultInjector = UncorrelatedFaultInjector(alpha = 9.66772, beta = 12.23796) for (node in bareMetalProvisioner.nodes()) { faultInjector.enqueue(node.metadata["driver"] as FailureDomain) } -- cgit v1.2.3