Resources & scaling
Every service declares an explicit CPU and memory for each of its replicas, and a web service scales by running a fixed number of replicas per location. This page covers picking a size, how replica counts work, the ceilings your plan sets, and how a resize applies.
CPU and memory
You choose a CPU and a memory value for the service — every replica runs at exactly that size. Both are picked from discrete steps:
- CPU: 0.25 or 0.5 vCPU, then whole vCPUs (1, 2, 3, …).
- Memory: 256 MiB, 512 MiB, then whole GiB (1, 2, 3, …).
Any CPU + memory pair is selectable, as long as memory stays within 8 GiB per vCPU. The rows below are representative examples with their monthly compute price — not presets:
| vCPU | Memory | Price |
|---|---|---|
| 0.25 vCPU | 512 MiB | $5/mo |
| 0.5 vCPU | 1 GiB | $10/mo |
| 1 vCPU | 2 GiB | $20/mo |
| 2 vCPU | 4 GiB | $40/mo |
| 4 vCPU | 8 GiB | $80/mo |
Databases size the same way — you pick CPU and memory, and the disk is included automatically, sized from the memory you choose. See Postgres and Redis for their size tables.
Replicas
A web service scales horizontally with a fixed replica count in each of its locations. You set the number per location in the service's Locations & replicas settings — see Locations & replicas.
There is no autoscaler: no minimum/maximum range, and no metric-based scaling. The count you set is the count that runs.
Two modes treat the count differently:
- A serverless service uses the count as its scale ceiling — it scales from zero up to that many replicas with demand. See scale to zero.
- A cron service has no replica count — it runs one instance per location on each tick.
A web service with a persistent volume runs exactly one replica in one location, and databases always run exactly one replica in one location — neither has a count to set.
Plan ceilings
Each plan sets, per service type, the largest CPU and memory a single service may request, and a per-location replica ceiling for web services. The numbers for every plan are on usage and limits.
The console keeps you inside your ceilings as you drag the sliders, and names the plan that lifts a ceiling when you reach it. A request over a ceiling — from the console or the API — is rejected with a quota_exceeded error that names the smallest plan that fits the request.
The always-free allowance covers one free unit — 0.5 vCPU / 1 GiB — of each service type on a primary account; see the free tier. On paid plans, compute above the allowance bills monthly in arrears — see billing.
Resize a service
- Click the service's node on the environment canvas to open its drawer.
- Go to the Settings tab.
- Under Replica limits, drag the CPU and Memory sliders — they snap to the allowed steps.
- Press Deploy on the changes bar (Shift+Enter).
Resizing is a staged change: nothing applies until you press Deploy. It requires the editor role or higher — see teams and roles.
Deploying creates a new deployment and replaces every replica at the new size. Watch the service's status while the new replicas come up — the resize is done when the service reads online again.