diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2020-04-09 17:55:13 +0200 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2020-04-09 17:55:13 +0200 |
| commit | e86cb2f8a9075187607e5f49cf93fda9b75f7338 (patch) | |
| tree | 1b1a0719c4a6efa17b689273464a296d4ecef715 /opendc/opendc-experiments-sc20 | |
| parent | a235ddbfd3c5fb6086cc5b9f637c840e40b46147 (diff) | |
bug: Do not schedule too large VMs on hypervisors
Diffstat (limited to 'opendc/opendc-experiments-sc20')
| -rw-r--r-- | opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt | 9 |
1 files changed, 5 insertions, 4 deletions
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 18cfed5f..8eeffa6b 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 @@ -228,20 +228,21 @@ fun main(args: Array<String>) { null } - val running = mutableSetOf<Server>() val finish = Channel<Unit>(Channel.RENDEZVOUS) + var submitted = 0 + var finished = 0 val reader = Sc20TraceReader(File(traceDirectory), performanceInterferenceModel, getSelectedVmList()) while (reader.hasNext()) { val (time, workload) = reader.next() delay(max(0, time - simulationContext.clock.millis())) + submitted++ launch { chan.send(Unit) val server = scheduler.deploy( workload.image.name, workload.image, Flavor(workload.image.maxCores, workload.image.requiredMemory) ) - running += server // Monitor server events server.events .onEach { @@ -250,10 +251,10 @@ fun main(args: Array<String>) { // Detect whether the VM has finished running if (it.server.state == ServerState.SHUTOFF) { - running -= server + finished++ } - if (running.isEmpty() && !reader.hasNext()) { + if (finished == submitted && !reader.hasNext()) { finish.send(Unit) } } |
