# Pod Sizes

> Available pod sizes and how to think about scaling up vs. scaling out.

Watasu offers fixed-price pods for sustained workloads and usage-billed Dynamic pods for uneven ones. Pod size is selected per process type, so one app can mix both models.

## Available sizes

### Fixed-price pods

| Size           |                       CPU | Memory | Price per replica-month | Notes                                               |
| -------------- | ------------------------: | -----: | ----------------------: | --------------------------------------------------- |
| `hobby`        | up to 1 (0.25 guaranteed) |  1 GiB |                      €8 | Max 1 replica. Prototypes and small internal tools. |
| `standard-1x`  |                         1 |  2 GiB |                     €15 | Baseline small web and worker workloads.            |
| `standard-2x`  |                         2 |  4 GiB |                     €30 | Medium web traffic and modest workers.              |
| `standard-4x`  |                         4 |  8 GiB |                     €60 | Heavy web or memory-bound workers.                  |
| `standard-8x`  |                         8 | 15 GiB |                    €120 | Large in-memory workloads and image processing.     |
| `standard-16x` |                        16 | 30 GiB |                    €240 | Single-replica heavy lifters.                       |

### Usage-billed Dynamic pods

| Size          | Hard CPU limit | Hard memory limit | Maximum at continuous full use |
| ------------- | -------------: | ----------------: | -----------------------------: |
| `dynamic-1x`  |              1 |             2 GiB |              €40/replica-month |
| `dynamic-2x`  |              2 |             4 GiB |              €80/replica-month |
| `dynamic-4x`  |              4 |             8 GiB |             €160/replica-month |
| `dynamic-8x`  |              8 |            15 GiB |             €310/replica-month |
| `dynamic-16x` |             16 |            30 GiB |             €620/replica-month |

Dynamic pods stay running and reachable; they do not scale to zero between requests. Watasu samples and aggregates actual CPU time and memory working set for each process every minute. The rate is:

* €20 per average vCPU-month
* €10 per average GiB-month

Each running replica has a minimum billed usage of 0.01 vCPU and 0.01 GiB, equivalent to €0.30 per replica-month at the current rates. Usage above either floor is billed from measured consumption. Scaling a process to zero stops its compute charges. The selected size remains a hard limit and therefore an upper bound on the usage charge.

If a CPU or memory sample is absent, that component uses the selected size's cap for the affected minute rather than creating an unmetered gap. Usage rows record whether they came from metrics or this conservative fallback.

Dynamic is intentionally more expensive than Standard at continuous full use. Choose Standard for steady workloads and Dynamic when idle time dominates. For example, a `dynamic-1x` process averaging 0.05 vCPU and 0.2 GiB has an approximate €3/month run rate while retaining room to burst to 1 vCPU and 2 GiB.

The dashboard shows current per-size pricing. Use `watasu pods --app <app>` to see what your processes are running on right now.

## Pick a size

```bash
watasu pods:type web=standard-2x worker=dynamic-1x --app my-app
```

Each process type gets its own size — they're independent.

## Scale up vs. scale out

Two questions decide which lever to pull:

**"Is one process running out of CPU or memory?"** → Scale up (bigger pod). Indicators:

* OOMKilled events
* one process pegged at high CPU while others are idle
* a single hot path that won't parallelize

**"Are concurrent requests piling up?"** → Scale out (more replicas). Indicators:

* request queue depth growing
* response time degrading at high load even though no single request is slow
* needing redundancy for HA

You can do both. A common production formation:

```bash
watasu pods:scale web=3 worker=2 --app my-app
watasu pods:type web=standard-2x worker=standard-1x --app my-app
```

Remember `hobby` is capped at one replica. Both `standard-*` and `dynamic-*` process types can scale out.

## Limits

If a `pods:scale` or `pods:type` command is refused, the dashboard tells you which limit you've hit and what to do about it. See [Billing and Limits](https://docs.watasu.io/admin/billing-and-limits.md).

[View this page on the web](https://docs.watasu.io/reference/pod-sizes/)
