diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2020-03-17 12:07:42 +0100 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2020-03-17 12:07:42 +0100 |
| commit | 22b3568118493f2b3d18b37406e169f19b47a311 (patch) | |
| tree | d260cd9d013ef33aa3de744f78b1a94ada1266c6 | |
| parent | df088c89b43c4bcb5051c42906e91258ccd69ce5 (diff) | |
| parent | ed5438692d74b04a2fc59bdb8e2b223129df8f67 (diff) | |
Merge branch '2.x-perf-interf-extension' into '2.x'
Apply performance interference only to (on average) one VM
See merge request opendc/opendc-simulator!45
| -rw-r--r-- | opendc/opendc-core/src/main/kotlin/com/atlarge/opendc/core/workload/PerformanceInterferenceModel.kt | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/opendc/opendc-core/src/main/kotlin/com/atlarge/opendc/core/workload/PerformanceInterferenceModel.kt b/opendc/opendc-core/src/main/kotlin/com/atlarge/opendc/core/workload/PerformanceInterferenceModel.kt index 78d5cd82..e2032ff1 100644 --- a/opendc/opendc-core/src/main/kotlin/com/atlarge/opendc/core/workload/PerformanceInterferenceModel.kt +++ b/opendc/opendc-core/src/main/kotlin/com/atlarge/opendc/core/workload/PerformanceInterferenceModel.kt @@ -1,6 +1,7 @@ package com.atlarge.opendc.core.workload import com.atlarge.opendc.core.resource.Resource +import kotlin.random.Random /** * Meta-data key for the [PerformanceInterferenceModel] of an image. @@ -24,10 +25,17 @@ data class PerformanceInterferenceModel( if (intersectingItems.isEmpty()) { return 1.0 } - return intersectingItems + val score = intersectingItems .filter { it.minServerLoad <= currentServerLoad } .map { it.performanceScore } - .min() ?: 1.0 + .min() + + // Apply performance penalty to (on average) only one of the VMs + return if (score != null && Random.nextInt(items.size) == 0) { + score + } else { + 1.0 + } } } |
