You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/core_concepts/42_autoscaling/index.mdx
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -94,4 +94,4 @@ Autoscaling events can be viewed under the worker group details:
94
94
95
95
## Billing
96
96
97
-
In terms of billing for Windmill [Enterprise Edition](/pricing), Windmill measures how long the workers are online with a minute granularity. If you use 10 workers with 2GB for 1/10th of the month, it will count the same as if you had a single worker for the full month.
97
+
In terms of billing for Windmill [Enterprise Edition](/pricing), Windmill measures how long the workers are online with a minute granularity. If you use 10 workers with 2GB for 1/10th of the month, it will count the same as if you had a single worker for the full month. It's like if in your [Windmill setup](../../misc/7_plans_details/index.mdx#setup-and-compute-units), the replicas of the worker group would adjust for a given amount of time.
Windmill uses Compute Units (CUs) to measure and track resource usage across your EE instances.
151
+
152
+
A [compute unit](/pricing#compute-units) (CU) represents the computational resources allocated to a worker based on its memory limit. The memory limit determines the size and capacity of the worker, therefore its Compute Units.
153
+
154
+
Compute Units are calculated as follows:
155
+
- A worker with 1GB memory limit = 0.5 CU
156
+
- A worker with 2GB memory limit = 1 CU
157
+
- A worker with 4GB memory limit = 2 CUs
158
+
- On self-hosted plans, any worker with more than 2GB of memory counts as 2 Compute Units (e.g., a worker with 16GB counts as 2 Compute Units)
159
+
- On cloud plans, the number of Compute Units scales linearly with memory (e.g., a 4GB worker = 2 Compute Units, 8GB worker = 4 Compute Units)
160
+
- 8 native workers count as 1 compute unit. They go 8 by 8. Native workers are workers within the native worker group. This group is pre-configured to listen to native jobs tags (query languages). Those jobs are executed under a special mode with subworkers for increased throughput. You can set the number of native workers to 0.
161
+
162
+
### How Compute Units are counted for a subscription
163
+
164
+
Based on the telemetry your EE instances send, Compute Units are calculated as follows:
165
+
- The memory of each worker of all of the prod instances is aggregated against the global compute unit quota
166
+
- Compute Units are allocated freely across workers of different sizes based on needs
167
+
- The total number of Compute Units is rounded up to the nearest whole number, as there are no half Compute Units
168
+
- It only counts workers of all of the prod instances and exclude the other containers like ui, lsp, multi-player, etc.
169
+
170
+
You can monitor your Compute Units usage from the [Customer Portal](#windmill-customer-portal).
171
+
172
+
### Example setups and their Compute Units
173
+
174
+
Below are examples from your setup [docker-compose.yml](https://github.com/windmill-labs/windmill/blob/main/docker-compose.yml) file and their Compute Units.
175
+
176
+
#### Basic setup (3 CUs)
177
+
178
+
Calculation: 2 workers × 1 CU each + 1 native worker with NUM_WORKERS=8 = 3 CUs
179
+
180
+
```yaml
181
+
services:
182
+
# Other services (db, server, caddy, etc.) don't count towards CUs
183
+
184
+
windmill_worker_custom_name:
185
+
deploy:
186
+
replicas: 2# 2 workers × 1 CU each = 2 CUs
187
+
resources:
188
+
limits:
189
+
memory: 2048M# 2GB = 1 CU per worker
190
+
191
+
windmill_worker_native:
192
+
deploy:
193
+
replicas: 1# 1 worker with subworkers NUM_WORKERS=8 = 1 CU
194
+
resources:
195
+
limits:
196
+
memory: 2048M
197
+
environment:
198
+
- WORKER_GROUP=native
199
+
- NUM_WORKERS=8
200
+
```
201
+
202
+
#### Medium setup (8 CUs)
203
+
204
+
Calculation: 3 workers × 1 CU each + 1 native worker with NUM_WORKERS=8 = 8 CUs
205
+
206
+
```yaml
207
+
services:
208
+
windmill_worker:
209
+
deploy:
210
+
replicas: 3# 3 workers × 1 CU each = 3 CUs
211
+
resources:
212
+
limits:
213
+
memory: 2048M# 2GB = 1 CU
214
+
215
+
windmill_small_worker:
216
+
deploy:
217
+
replicas: 4# 4 workers with 1GB memory = 0.5 CUs each = 2 CUs
218
+
resources:
219
+
limits:
220
+
memory: 1024M# 1GB = 0.5 CU
221
+
222
+
windmill_worker_reports:
223
+
deploy:
224
+
replicas: 2# 2 workers × 1 CU each = 2 CUs
225
+
resources:
226
+
limits:
227
+
memory: 2048M# 2GB = 1 CU
228
+
environment:
229
+
- WORKER_GROUP=reports
230
+
231
+
windmill_worker_native:
232
+
deploy:
233
+
replicas: 1# 1 worker with NUM_WORKERS=8 = 1 CU
234
+
resources:
235
+
limits:
236
+
memory: 2048M
237
+
environment:
238
+
- WORKER_GROUP=native
239
+
- NUM_WORKERS=8
240
+
```
241
+
242
+
#### Large setup (Cloud Plan - 16 CUs)
243
+
244
+
Note: for now, setups of cloud EE instances are handled directly by the Windmill team. Please reach out to us if you need to configure your setup.
245
+
246
+
Calculation: 2 workers × 1 CU each + 4 workers × 3 CUs each + 1 native worker with NUM_WORKERS=8 = 16 CUs
247
+
248
+
```yaml
249
+
services:
250
+
windmill_worker_standard:
251
+
deploy:
252
+
replicas: 2# 2 workers × 1 CU each = 2 CUs
253
+
resources:
254
+
limits:
255
+
memory: 2048M# 2GB = 1 CU per worker
256
+
257
+
windmill_worker_large:
258
+
deploy:
259
+
replicas: 4# 4 workers × 3 CUs each = 12 CUs
260
+
resources:
261
+
limits:
262
+
memory: 6144M# 6GB = 3 CUs per worker
263
+
264
+
windmill_worker_reports:
265
+
deploy:
266
+
replicas: 1# 1 worker × 1 CU = 1 CU
267
+
resources:
268
+
limits:
269
+
memory: 2048M# 2GB = 1 CU
270
+
271
+
windmill_worker_native:
272
+
deploy:
273
+
replicas: 1# 1 worker with 8 subworkers (can't be changed) = 1 CU
274
+
resources:
275
+
limits:
276
+
memory: 2048M
277
+
environment:
278
+
- WORKER_GROUP=native
279
+
- NUM_WORKERS=8
280
+
```
281
+
282
+
#### Large setup (Self-hosted - 12 CUs)
283
+
284
+
Calculation: 2 workers × 1 CU each + 4 workers × 2 CUs each + 1 native worker with NUM_WORKERS=8 = 12 CUs
285
+
286
+
```yaml
287
+
services:
288
+
windmill_worker_standard:
289
+
deploy:
290
+
replicas: 2# 2 workers × 1 CU each = 2 CUs
291
+
resources:
292
+
limits:
293
+
memory: 2048M# 2GB = 1 CU per worker
294
+
295
+
windmill_worker_large:
296
+
deploy:
297
+
replicas: 4# 4 workers × 2 CUs each = 8 CUs
298
+
resources:
299
+
limits:
300
+
memory: 6144M# 6GB but capped at 2 CUs per worker
301
+
302
+
windmill_worker_reports:
303
+
deploy:
304
+
replicas: 1# 1 worker × 1 CU = 1 CU
305
+
resources:
306
+
limits:
307
+
memory: 2048M# 2GB = 1 CU
308
+
309
+
windmill_worker_native:
310
+
deploy:
311
+
replicas: 1# 1 worker with NUM_WORKERS=8 = 1 CU
312
+
resources:
313
+
limits:
314
+
memory: 2048M
315
+
environment:
316
+
- WORKER_GROUP=native
317
+
- NUM_WORKERS=8
318
+
```
319
+
Note: Services like db, windmill_server, lsp, multiplayer, indexer, and caddy don't count towards Compute Units.
320
+
321
+
### Compute Units and autoscaling
322
+
323
+
In terms of billing for Windmill Enterprise Edition with [autoscaling](../../core_concepts/42_autoscaling/index.mdx), Windmill measures how long the workers are online with a minute granularity. If you use 10 workers with 2GB for 1/10th of the month, it will count the same as if you had a single worker for the full month.
324
+
325
+
As for the setup, it's like if the replicas of the worker group would adjust for a given amount of time.
326
+
148
327
## AWS Marketplace
149
328
150
329
Windmill is available on the [AWS Marketplace](https://aws.amazon.com/marketplace/seller-profile?id=seller-pxlq6nidwn3lo). We are notified as soon as you have subscribed to a package, a Windmill representative will come to you to give you what you need to start your subscription: license key for the self-hosted EE package, access to dedicated instance for the cloud EE package.
</Link>{' '}with 2GB of memory limit counts as 1 compute unit. On self-hosted plans, any worker with >2GBofmemorycountsas2computeunits(e.g.aworkerwith16GBcountsas2computeunits).
122
+
</Link>{' '}with 2GB of memory limit counts as 1 compute unit. On self-hosted plans, any worker with >2GBofmemorycountsas2computeunits(e.g.aworkerwith16GBcountsas2computeunits).Fordetailedinformationonhowyoursetuptranslatestocomputeunits,seethe{' '}
, pricing is based on compute units. A compute unit corresponds to 2 worker-gb-month. For example, a worker with 2GB of memory limit (standard worker) counts as 1 compute unit. A worker with 4GB of memory (large worker) counts as 2 compute units. On self-hosted plans, any worker with memory above 2GB counts as 2 compute units (16GB worker counts as 2 compute units). On cloud EE, it scales linearly with the memory limit. The number of compute units is calculated based on the memory limits set for your workers in production instances. You can set memory limits in docker-compose or Kubernetes manifests to control your compute unit usage. Each worker can run up to ~26M jobs per month (at 100ms per job).
202
+
, pricing is based on compute units. A compute unit corresponds to 2 worker-gb-month. For example, a worker with 2GB of memory limit (standard worker) counts as 1 compute unit. A worker with 4GB of memory (large worker) counts as 2 compute units. On self-hosted plans, any worker with memory above 2GB counts as 2 compute units (16GB worker counts as 2 compute units). On cloud EE, it scales linearly with the memory limit. The number of compute units is calculated based on the memory limits set for your workers in production instances. You can set memory limits in docker-compose or Kubernetes manifests to control your compute unit usage. For detailed information on how your setup translates to compute units, see the{' '}
0 commit comments