summaryrefslogtreecommitdiff
path: root/opendc
diff options
context:
space:
mode:
authorGeorgios Andreadis <info@gandreadis.com>2020-05-23 10:30:04 +0200
committerGeorgios Andreadis <info@gandreadis.com>2020-05-23 10:30:04 +0200
commite05aba274accc6006ffb2fb3fccc1d4399b4c4a0 (patch)
treee40d28015796c81dc80ef211a875cca4662a5642 /opendc
parentc13d5160c79b51a62151b30e2a54d132bc550c35 (diff)
Pick frame out of Solvinity trace
Diffstat (limited to 'opendc')
-rw-r--r--opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/experiment/Portfolios.kt12
-rw-r--r--opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt25
2 files changed, 23 insertions, 14 deletions
diff --git a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/experiment/Portfolios.kt b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/experiment/Portfolios.kt
index 0865887b..4d8e2f1d 100644
--- a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/experiment/Portfolios.kt
+++ b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/experiment/Portfolios.kt
@@ -84,7 +84,7 @@ public class MoreVelocityPortfolio(parent: Experiment, id: Int) : Portfolio(pare
}
public class CompositeWorkloadPortfolio(parent: Experiment, id: Int) : Portfolio(parent, id, "composite-workload") {
- private val totalSampleLoad = 3063174751459.0
+ private val totalSampleLoad = 1.3301733005049648E12
override val topologies = listOf(
Topology("base"),
@@ -96,27 +96,27 @@ public class CompositeWorkloadPortfolio(parent: Experiment, id: Int) : Portfolio
override val workloads = listOf(
CompositeWorkload(
"all-azure",
- listOf(Workload("solvinity", 0.0), Workload("azure", 1.0)),
+ listOf(Workload("solvinity-short", 0.0), Workload("azure", 1.0)),
totalSampleLoad
),
CompositeWorkload(
"solvinity-25-azure-75",
- listOf(Workload("solvinity", 0.25), Workload("azure", 0.75)),
+ listOf(Workload("solvinity-short", 0.25), Workload("azure", 0.75)),
totalSampleLoad
),
CompositeWorkload(
"solvinity-50-azure-50",
- listOf(Workload("solvinity", 0.5), Workload("azure", 0.5)),
+ listOf(Workload("solvinity-short", 0.5), Workload("azure", 0.5)),
totalSampleLoad
),
CompositeWorkload(
"solvinity-75-azure-25",
- listOf(Workload("solvinity", 0.75), Workload("azure", 0.25)),
+ listOf(Workload("solvinity-short", 0.75), Workload("azure", 0.25)),
totalSampleLoad
),
CompositeWorkload(
"all-solvinity",
- listOf(Workload("solvinity", 1.0), Workload("azure", 0.0)),
+ listOf(Workload("solvinity-short", 1.0), Workload("azure", 0.0)),
totalSampleLoad
)
)
diff --git a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt
index 652551c6..0877ad52 100644
--- a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt
+++ b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt
@@ -192,6 +192,9 @@ fun readSolvinityTrace(
val allFragments = mutableListOf<Fragment>()
+ val begin = 15 * 24 * 60 * 60 * 1000L
+ val end = 45 * 24 * 60 * 60 * 1000L
+
traceDirectory.walk()
.filterNot { it.isDirectory }
.filter { it.extension == "csv" || it.extension == "txt" }
@@ -229,6 +232,10 @@ fun readSolvinityTrace(
}
val timestamp = (values[timestampCol].trim().toLong() - 5 * 60) * 1000L - minTimestamp
+ if (begin > timestamp || timestamp > end) {
+ continue
+ }
+
cores = values[coreCol].trim().toInt()
requiredMemory = max(requiredMemory, values[provisionedMemoryCol].trim().toLong())
maxCores = max(maxCores, cores)
@@ -274,18 +281,20 @@ fun readSolvinityTrace(
}
var maxTime = Long.MIN_VALUE
- flopsFragments.forEach { fragment ->
+ flopsFragments.filter { it.tick in begin until end }.forEach { fragment ->
allFragments.add(fragment)
maxTime = max(maxTime, fragment.tick)
}
- val metaRecord = GenericData.Record(metaSchema)
- metaRecord.put("id", vmId)
- metaRecord.put("submissionTime", minTime)
- metaRecord.put("endTime", maxTime)
- metaRecord.put("maxCores", maxCores)
- metaRecord.put("requiredMemory", requiredMemory)
- metaWriter.write(metaRecord)
+ if (minTime in begin until end) {
+ val metaRecord = GenericData.Record(metaSchema)
+ metaRecord.put("id", vmId)
+ metaRecord.put("submissionTime", minTime)
+ metaRecord.put("endTime", maxTime)
+ metaRecord.put("maxCores", maxCores)
+ metaRecord.put("requiredMemory", requiredMemory)
+ metaWriter.write(metaRecord)
+ }
}
return allFragments