@@ -117,54 +117,65 @@ This will delete all workspaces and users with the prefix `scaletest-`.
117
117
118
118
## Scale testing template
119
119
120
- Besides the CLI utility, consider using a dedicated
120
+ Consider using a dedicated
121
121
[ scaletest-runner] ( https://github.com/coder/coder/tree/main/scaletest/templates/scaletest-runner )
122
- template for testing large scale Kubernetes clusters.
122
+ template alongside the CLI utility for testing large- scale Kubernetes clusters.
123
123
124
- The template deploys a main workspace with scripts used to orchestrate Coder to
125
- create workspaces, generate workspace traffic, or load tests workspace apps.
124
+ The template deploys a main workspace with scripts used to orchestrate Coder,
125
+ creating workspaces, generating workspace traffic, or load-testing workspace
126
+ apps.
126
127
127
128
### Parameters
128
129
129
130
The _ scaletest-runner_ offers the following configuration options:
130
131
131
- - workspace template selecting Kubernetes cluster size:
132
+ - Workspace template selecting Kubernetes cluster size:
132
133
minimal/small/medium/large (_ default_ : minimal)
133
- - number of workspaces
134
- - wait duration between scenarios or staggered approach
134
+ - Number of workspaces
135
+ - Wait duration between scenarios or staggered approach
135
136
136
137
The template exposes parameters to control the traffic dimensions for SSH
137
138
connections, workspace apps, and dashboard tests:
138
139
139
- - traffic duration of the load test scenario
140
- - traffic percentage of targeted workspaces
141
- - bytes per tick and tick interval
140
+ - Traffic duration of the load test scenario
141
+ - Traffic percentage of targeted workspaces
142
+ - Bytes per tick and tick interval
142
143
- _ For workspace apps_ : modes (echo, read random data, or write and discard)
143
144
144
145
Scale testing concurrency can be controlled with the following parameters:
145
146
146
- - enable parallel scenarios - interleave different traffic patterns (SSH,
147
+ - Enable parallel scenarios - interleave different traffic patterns (SSH,
147
148
workspace apps, dashboard traffic, etc.)
148
- - workspace creation concurrency level (_ default_ : 10)
149
- - job concurrency level - generate workspace traffic using multiple jobs
149
+ - Workspace creation concurrency level (_ default_ : 10)
150
+ - Job concurrency level - generate workspace traffic using multiple jobs
150
151
(_ default_ : 0)
151
- - cleanup concurrency level
152
+ - Cleanup concurrency level
152
153
153
154
### Kubernetes cluster
154
155
155
156
Depending on the traffic projections, operators can deploy different sample
156
- clusters to perform scale tests. It is recommend to learn how to operate the
157
+ clusters to perform scale tests. It is recommended to learn how to operate the
157
158
scaletest-runner before running it against the staging cluster (or production at
158
159
your own risk).
159
160
160
- There are a few cluster options available:
161
+ There are a few cluster options
162
+ [ available] ( https://github.com/coder/coder/tree/main/scaletest/templates/scaletest-runner ) :
161
163
162
- - minimal
163
- - small
164
- - medium
165
- - large
164
+ | Cluster size | vCPU | Memory | Persisted storage | Details |
165
+ | ------------ | ---- | ------ | ----------------- | ----------------------------------------------------- |
166
+ | minimal | 1 | 2 Gi | None | |
167
+ | small | 1 | 1 Gi | None | |
168
+ | medium | 2 | 2 Gi | None | Medium-sized cluster offers the greedy agent variant. |
169
+ | large | 4 | 4 Gi | None | |
166
170
167
- TODO greedy
171
+ #### Greedy agent
172
+
173
+ The greedy agent variant is a template modification that forces the Coder agent
174
+ to transmit large metadata (size: 4K) while emitting stats. The transmission of
175
+ large chunks puts extra overhead on coderd instances and agents while processing
176
+ and storing the data.
177
+
178
+ Use this template variant to verify limits of the cluster performance.
168
179
169
180
### Observability
170
181
0 commit comments