Skip to content

Commit 18abcef

Browse files
committed
Moved RpsImage and PrepullMode into dirigent config.
Signed-off-by: Tobias Stocker <tstocker@student.ethz.ch>
1 parent d19fd1e commit 18abcef

13 files changed

+34
-34
lines changed

cmd/config_dirigent_dandelion_rps.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
"RpsTarget": 1,
1010
"RpsColdStartRatioPercentage": 0,
1111
"RpsCooldownSeconds": 10,
12-
"RpsImage": "empty",
1312
"RpsRuntimeMs": 10,
1413
"RpsMemoryMB": 2048,
1514
"RpsIterationMultiplier": 80,
@@ -21,7 +20,6 @@
2120
"CPULimit": "1vCPU",
2221
"ExperimentDuration": 1,
2322
"WarmupDuration": 0,
24-
"PrepullMode": "",
2523

2624
"IsPartiallyPanic": false,
2725
"EnableZipkinTracing": false,

cmd/config_dirigent_dandelion_trace.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
"CPULimit": "1vCPU",
1414
"ExperimentDuration": 2,
1515
"WarmupDuration": 0,
16-
"PrepullMode": "",
1716

1817
"IsPartiallyPanic": false,
1918
"EnableZipkinTracing": false,

cmd/config_dirigent_dandelion_workflow_rps.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
"RpsTarget": 1,
1010
"RpsColdStartRatioPercentage": 0,
1111
"RpsCooldownSeconds": 10,
12-
"RpsImage": "workloads/dandelion_workflows/basic_chain.txt",
1312
"RpsRuntimeMs": 10,
1413
"RpsMemoryMB": 2048,
1514
"RpsIterationMultiplier": 80,
@@ -21,7 +20,6 @@
2120
"CPULimit": "1vCPU",
2221
"ExperimentDuration": 1,
2322
"WarmupDuration": 0,
24-
"PrepullMode": "",
2523

2624
"IsPartiallyPanic": false,
2725
"EnableZipkinTracing": false,

cmd/config_dirigent_rps.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
"RpsTarget": 1,
1010
"RpsColdStartRatioPercentage": 0,
1111
"RpsCooldownSeconds": 10,
12-
"RpsImage": "docker.io/cvetkovic/dirigent_empty_function:latest",
1312
"RpsRuntimeMs": 10,
1413
"RpsMemoryMB": 2048,
1514
"RpsIterationMultiplier": 80,
@@ -21,7 +20,6 @@
2120
"CPULimit": "1vCPU",
2221
"ExperimentDuration": 1,
2322
"WarmupDuration": 0,
24-
"PrepullMode": "",
2523

2624
"IsPartiallyPanic": false,
2725
"EnableZipkinTracing": false,

cmd/config_dirigent_trace.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
"CPULimit": "1vCPU",
1414
"ExperimentDuration": 30,
1515
"WarmupDuration": 0,
16-
"PrepullMode": "",
1716

1817
"IsPartiallyPanic": false,
1918
"EnableZipkinTracing": false,

cmd/dirigent/config_containerd.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
"Backend": "containerd",
33
"DirigentControlPlaneIP": "10.0.1.253:9091",
44
"BusyLoopOnSandboxStartup": false,
5+
"PrepullMode": "",
56

67
"AsyncMode": false,
78
"AsyncResponseURL": "10.0.1.253:8082",
89
"AsyncWaitToCollectMin": 1,
910

11+
"RpsImage": "docker.io/cvetkovic/dirigent_empty_function:latest",
1012
"RpsDataSizeMB": 0.00,
1113

1214
"Workflow": false

cmd/dirigent/config_dandelion.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
"Backend": "dandelion",
33
"DirigentControlPlaneIP": "10.0.1.253:9091",
44
"BusyLoopOnSandboxStartup": false,
5+
"PrepullMode": "",
56

67
"AsyncMode": false,
78
"AsyncResponseURL": "10.0.1.253:8082",
89
"AsyncWaitToCollectMin": 1,
910

11+
"RpsImage": "empty",
1012
"RpsDataSizeMB": 0.00,
1113

1214
"Workflow": false

cmd/dirigent/config_dandelion_workflow.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
"Backend": "dandelion",
33
"DirigentControlPlaneIP": "10.0.1.253:9091",
44
"BusyLoopOnSandboxStartup": false,
5+
"PrepullMode": "",
56

67
"AsyncMode": false,
78
"AsyncResponseURL": "10.0.1.253:8082",
89
"AsyncWaitToCollectMin": 1,
910

11+
"RpsImage": "workloads/dandelion_workflows/basic_chain.txt",
1012
"RpsDataSizeMB": 0.00,
1113

1214
"Workflow": true,

cmd/loader.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,16 +231,18 @@ func runRPSMode(cfg *config.LoaderConfiguration, readIATFromFile bool, writeIATs
231231
warmFunction, warmStartCount := generator.GenerateWarmStartFunction(experimentDuration, warmStartRPS)
232232
coldFunctions, coldStartCount := generator.GenerateColdStartFunctions(experimentDuration, coldStartRPS, cfg.RpsCooldownSeconds)
233233

234+
// loads dirigent config only if the platform is 'dirigent'
235+
dirigentConfig := config.ReadDirigentConfig(cfg)
236+
234237
experimentDriver := driver.NewDriver(&config.Configuration{
235238
LoaderConfiguration: cfg,
236239
TraceDuration: experimentDuration,
237240

238-
// loads dirigent config only if the platform is 'dirigent'
239-
DirigentConfiguration: config.ReadDirigentConfig(cfg),
241+
DirigentConfiguration: dirigentConfig,
240242

241243
YAMLPath: parseYAMLSpecification(cfg),
242244

243-
Functions: generator.CreateRPSFunctions(cfg, warmFunction, warmStartCount, coldFunctions, coldStartCount),
245+
Functions: generator.CreateRPSFunctions(cfg, dirigentConfig, warmFunction, warmStartCount, coldFunctions, coldStartCount),
244246
})
245247

246248
// Skip experiments execution during dry run mode

docs/configuration.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
| RpsTarget | int | >= 0 | 0 | Number of requests per second to issue |
1212
| RpsColdStartRatioPercentage | int | >= 0 && <= 100 | 0 | Percentage of cold starts out of specified RPS |
1313
| RpsCooldownSeconds [^6] | int | > 0 | 0 | The time it takes for the autoscaler to downscale function (higher for higher RPS) |
14-
| RpsImage | string | N/A | N/A | Function image to use for RPS experiments |
1514
| RpsRuntimeMs | int | >= 0 | 0 | Requested execution time |
1615
| RpsMemoryMB | int | >= 0 | 0 | Requested memory |
1716
| RpsIterationMultiplier | int | >= 0 | 0 | Iteration multiplier for RPS mode |
@@ -22,7 +21,6 @@
2221
| CPULimit | string | 1vCPU, GCP | 1vCPU | Imposed CPU limits on worker containers (only applicable for 'Knative' platform)[^4] |
2322
| ExperimentDuration | int | > 0 | 1 | Experiment duration in minutes of trace to execute excluding warmup |
2423
| WarmupDuration | int | > 0 | 0 | Warmup duration in minutes(disabled if zero) |
25-
| PrepullMode | string | all_sync, all_async, one_sync, one_async, none | none | Prepull image before starting experiments sync or async |
2624
| IsPartiallyPanic | bool | true/false | false | Pseudo-panic-mode only in Knative |
2725
| EnableZipkinTracing | bool | true/false | false | Show loader span in Zipkin traces |
2826
| EnableMetricsScrapping | bool | true/false | false | Scrap cluster-wide metrics |
@@ -52,7 +50,7 @@ this [table](https://cloud.google.com/functions/pricing#compute_time) for Google
5250
[^5]: Function can execute for at most 15 minutes as in AWS
5351
Lambda; https://aws.amazon.com/about-aws/whats-new/2018/10/aws-lambda-supports-functions-that-can-run-up-to-15-minutes/
5452

55-
[^6] It is recommended that the first 10% of cold starts are discarded from the experiment results for low cold start
53+
[^6]: It is recommended that the first 10% of cold starts are discarded from the experiment results for low cold start
5654
RPS.
5755

5856
[^7]: The generated DAGs consist of unique functions. The shape of each DAG is determined either ```Width,Depth``` or calculated based on ```EnableDAGDAtaset```.
@@ -76,19 +74,21 @@ that the node on which you run InVitro has SSH access to the target node.
7674
---
7775

7876
# Dirigent configuration
79-
| Parameter name | Data type | Possible values | Default value | Description |
80-
|--------------------------|-----------|------------------------------------------|---------------|-----------------------------------------------------------------------------------------|
81-
| Backend | string | `containerd`, `firecracker`, `dandelion` | `containerd` | The backend used in Dirigent |
82-
| DirigentControlPlaneIP | string | N/A | N/A | IP address of the Dirigent control plane (for function deployment) |
83-
| BusyLoopOnSandboxStartup | bool | true/false | false | Enable artificial delay on sandbox startup |
84-
| AsyncMode | bool | true/false | false | Enable asynchronous invocations in Dirigent |
85-
| AsyncResponseURL | string | N/A | N/A | URL from which to collect invocation responses |
86-
| AsyncWaitToCollectMin | int | >= 0 | 0 | Time after experiment ends after which to collect invocation results |
87-
| RpsRequestedGpu | int | >= 0 | 0 | Number of gpus requested from Dirigent |
88-
| RpsFile [^1] | string | N/A | N/A | If given the payload is read from this file |
89-
| RpsDataSizeMB [^1] | float64 | >= 0 | 0 | If no rps file is given this amount of random data is generated (same for all requests) |
90-
| Workflow [^2] | bool | true/false | false | Send workflow requests to Dirigent |
91-
| WorkflowConfigPath [^3] | string | N/A | N/A | Path to the configuration file for the workflow requests (see below) |
77+
| Parameter name | Data type | Possible values | Default value | Description |
78+
|--------------------------|-----------|-------------------------------------------------|---------------|-----------------------------------------------------------------------------------------|
79+
| Backend | string | `containerd`, `firecracker`, `dandelion` | `containerd` | The backend used in Dirigent |
80+
| DirigentControlPlaneIP | string | N/A | N/A | IP address of the Dirigent control plane (for function deployment) |
81+
| BusyLoopOnSandboxStartup | bool | true/false | false | Enable artificial delay on sandbox startup |
82+
| PrepullMode | string | all_sync, all_async, one_sync, one_async, none | none | Prepull image before starting experiments sync or async |
83+
| AsyncMode | bool | true/false | false | Enable asynchronous invocations in Dirigent |
84+
| AsyncResponseURL | string | N/A | N/A | URL from which to collect invocation responses |
85+
| AsyncWaitToCollectMin | int | >= 0 | 0 | Time after experiment ends after which to collect invocation results |
86+
| RpsImage | string | N/A | N/A | Function image to use for RPS experiments |
87+
| RpsRequestedGpu | int | >= 0 | 0 | Number of gpus requested from Dirigent |
88+
| RpsFile [^1] | string | N/A | N/A | If given the payload is read from this file |
89+
| RpsDataSizeMB [^1] | float64 | >= 0 | 0 | If no rps file is given this amount of random data is generated (same for all requests) |
90+
| Workflow [^2] | bool | true/false | false | Send workflow requests to Dirigent |
91+
| WorkflowConfigPath [^3] | string | N/A | N/A | Path to the configuration file for the workflow requests (see below) |
9292

9393
[^1] Currently used only when requesting gpus (RpsRequestedGpu > 0) and ignored otherwise.
9494

0 commit comments

Comments
 (0)