Skip to content
Calcrivo

EC2 CPU Utilization Calculator

Convert CloudWatch CPU averages into busy vCPUs, idle headroom and the monthly cost of the capacity you never use.

Inputs

vCPU
%

CloudWatch CPUUtilization, averaged over a representative window.

%

Use the p99 rather than the maximum so one spike does not drive the sizing.

%
USD/hour
hours

Monthly Cost of Idle vCPU

$218.65

vCPUs Actually Busy

1.76

vCPUs Idle on Average

6.24

vCPUs Needed at the Target

3

Headroom Above Peak

35.0%

Sizing Verdict

Reasonably sized against the target utilisation

Step by step

  1. Values used

    vCPUs on the instance = 8 vCPU; Average CPU utilisation = 22 %; Peak CPU utilisation = 65 %; Target utilisation for sizing = 60 %; On-demand rate per hour = 0.3840 USD/hour; Hours running per month = 730 hours

  2. EC2 CPU Utilization

    busy vCPU = vCPUs × average CPU%; idle cost = hourly rate × hours × (idle vCPU ÷ total vCPU); vCPU at target = ceil(busy vCPU ÷ target%).

  3. Monthly Cost of Idle vCPU

    = 218.65

  4. vCPUs Actually Busy

    = 1.76

  5. vCPUs Idle on Average

    = 6.24

  6. vCPUs Needed at the Target

    = 3

  7. Headroom Above Peak

    = 35.0

  8. Sizing Verdict

    = Reasonably sized against the target utilisation

How it works

CloudWatch reports CPU as a percentage of the whole instance, so multiplying by the vCPU count converts it into absolute compute. Costing the idle share is a first-order approximation because EC2 charges for the instance, not the cycles — the idle fraction is money spent on capacity that produced nothing. Sizing on the p99 rather than the mean is what keeps a resize from causing a latency regression. Average CPU under 20% with a modest peak is the classic right-sizing signal, and putting a dollar figure on the idle share is what gets a resize prioritised over a backlog item.

Formula

EC2 CPU Utilization

busy vCPU = vCPUs × average CPU%; idle cost = hourly rate × hours × (idle vCPU ÷ total vCPU); vCPU at target = ceil(busy vCPU ÷ target%).

average CPU%
CloudWatch CPUUtilization mean over the window
peak CPU%
p99 utilisation, the figure sizing must survive
target
Utilisation you are willing to run at steady state

Frequently Asked Questions

How is EC2 CPU Utilization calculated?

busy vCPU = vCPUs × average CPU%; idle cost = hourly rate × hours × (idle vCPU ÷ total vCPU); vCPU at target = ceil(busy vCPU ÷ target%). CloudWatch reports CPU as a percentage of the whole instance, so multiplying by the vCPU count converts it into absolute compute. Costing the idle share is a first-order approximation because EC2 charges for the instance, not the cycles — the idle fraction is money spent on capacity that produced nothing. Sizing on the p99 rather than the mean is what keeps a resize from causing a latency regression.

Why does EC2 CPU Utilization matter?

Average CPU under 20% with a modest peak is the classic right-sizing signal, and putting a dollar figure on the idle share is what gets a resize prioritised over a backlog item.

What values do I need to enter?

This calculator takes 6 inputs: vCPUs on the instance, Average CPU utilisation, Peak CPU utilisation, Target utilisation for sizing, On-demand rate per hour, Hours running per month. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

You might also need