EC2 CPU Utilization Calculator
Convert CloudWatch CPU averages into busy vCPUs, idle headroom and the monthly cost of the capacity you never use.
Inputs
CloudWatch CPUUtilization, averaged over a representative window.
Use the p99 rather than the maximum so one spike does not drive the sizing.
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
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
EC2 CPU Utilization
busy vCPU = vCPUs × average CPU%; idle cost = hourly rate × hours × (idle vCPU ÷ total vCPU); vCPU at target = ceil(busy vCPU ÷ target%).
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
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
- EC2 Instance Right-Sizing CalculatorCommonly used together
- EC2 Memory Utilization CalculatorCommonly used together
- EC2 vCPU Requirement CalculatorCommonly used together
- EC2 Health Score CalculatorCommonly used together
- EC2 Instance Cost CalculatorAlso in AWS Compute
- Reserved Instance Savings CalculatorAlso in AWS Compute