Skip to content
Calcrivo

EC2 vCPU Requirement Calculator

Size vCPUs from request rate and CPU time per request, including peak factor, target utilisation and spare instances.

Inputs

requests/s
ms

CPU time, not wall-clock latency — I/O waits do not consume a vCPU.

x
%
vCPU
instances

N+1 keeps capacity intact through one instance or Availability Zone loss.

vCPUs Required at Peak

312

Instances Required

40

Peak Request Rate

4,500requests/s

vCPUs Busy at Steady State

112.5

vCPUs Provisioned

320

Utilisation at Peak

63.3%

Step by step

  1. Values used

    Steady-state request rate = 2,500 requests/s; CPU time per request = 45 ms; Peak to steady-state ratio = 1.80 x; Target vCPU utilisation at peak = 65 %; vCPUs per instance = 8 vCPU; Spare instances for redundancy = 1 instances

  2. EC2 vCPU Requirement

    vCPU busy = requests/s × CPU seconds per request; vCPUs required = ceil(peak vCPU busy ÷ target utilisation).

  3. vCPUs Required at Peak

    = 312

  4. Instances Required

    = 40

  5. Peak Request Rate

    = 4,500 requests/s

  6. vCPUs Busy at Steady State

    = 112.5

  7. vCPUs Provisioned

    = 320

  8. Utilisation at Peak

    = 63.3

How it works

Requests per second multiplied by CPU seconds per request gives CPU-seconds consumed per second, which is exactly a vCPU count — the utilisation law behind every capacity model. Dividing by the target utilisation adds queueing headroom, because response time climbs sharply as a processor-sharing system approaches saturation, and adding spare instances afterwards keeps the target intact when one node or AZ disappears. Sizing from CPU time rather than latency avoids the classic mistake of provisioning for I/O wait, which needs threads and memory but no additional vCPU at all.

Formula

EC2 vCPU Requirement

vCPU busy = requests/s × CPU seconds per request; vCPUs required = ceil(peak vCPU busy ÷ target utilisation).

CPU seconds
CPU time per request, milliseconds ÷ 1000
peak factor
How much higher the busiest minute runs than average
target
Utilisation you plan to hit at peak, leaving queueing headroom

Frequently Asked Questions

How is EC2 vCPU Requirement calculated?

vCPU busy = requests/s × CPU seconds per request; vCPUs required = ceil(peak vCPU busy ÷ target utilisation). Requests per second multiplied by CPU seconds per request gives CPU-seconds consumed per second, which is exactly a vCPU count — the utilisation law behind every capacity model. Dividing by the target utilisation adds queueing headroom, because response time climbs sharply as a processor-sharing system approaches saturation, and adding spare instances afterwards keeps the target intact when one node or AZ disappears.

Why does EC2 vCPU Requirement matter?

Sizing from CPU time rather than latency avoids the classic mistake of provisioning for I/O wait, which needs threads and memory but no additional vCPU at all.

What values do I need to enter?

This calculator takes 6 inputs: Steady-state request rate, CPU time per request, Peak to steady-state ratio, Target vCPU utilisation at peak, vCPUs per instance, Spare instances for redundancy. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

Why keep the target below 100%?

Queueing theory: for a processor-sharing server, waiting time scales as 1 ÷ (1 − utilisation). At 65% you pay about 3× the service time in latency; at 90% you pay 10×. Targets of 60–70% are the usual compromise between cost and tail latency.

You might also need