You pay for what you allocate
When you set CPU and memory on a service, you are making a reservation: that capacity is set aside for your service, guaranteed, for as long as it runs. Your bill is for the reservation, metered per second:- CPU: billed per core-second of allocated CPU.
- Memory: billed per GiB-second of allocated memory.
- Storage: billed per GiB-second of volume size.
- Network egress: the exception, is billed per MiB actually transferred out, since traffic can’t be reserved in advance.
Allocation is a floor, not a ceiling
On some platforms the resource numbers you set are maximums and you’re billed for measured usage. That means the numbers act like a cap. On Suga your allocation is a minimum, it’s a guaranteed to be available for your workload, but your service can use more when it needs to and that extra is free. When usage rises above your allocation, the service can burst into spare capacity on the underlying host. Burst usage is free, billing never rises above your allocation, no matter how far or how often you burst. Bursting is opportunistic, not guaranteed, it uses capacity that happens to be spare, so treat it as headroom for spikes rather than capacity you plan around:- CPU above your allocation is throttled when the machine is busy. The service keeps running at its guaranteed floor, it just doesn’t get the bonus.
- Memory above your allocation can be reclaimed when the machine is under pressure, which risks terminating the process using it. Never rely on burst memory for steady-state or startup needs, if your service needs it to boot or to sit idle, that memory belongs in the allocation.
- Storage never bursts, a volume is exactly its configured size.
Sizing a service
The practical rule is to allocate for steady state, burst for spikes.- Deploy with a modest allocation.
- Watch the service’s real usage at normal load in Metrics.
- Set CPU to roughly its steady-state draw, brief peaks (request spikes, cron jobs, startup) can burst for free.
- Set memory to what it needs at rest plus what it needs to start, with margin. Memory is a resource where under-allocating can cause issues.