Skip to content
Calcrivo

Idle CPU Percentage Calculator

Calculate idle CPU percentage and headroom available for additional workload.

Inputs

Idle CPU %

65.00%

Idle Capacity (core-equivalent)

5.20

Busy CPU %

35.00%

Idle Capacity (GHz-equivalent)

15.60

Assessment

Moderate idle capacity — some headroom remains.

Step by step

  1. Values used

    Idle Ticks (from /proc/stat delta) = 6,500; Total Ticks (from /proc/stat delta, all fields summed) = 10,000; CPU Cores = 8; Per-Core Frequency (GHz, for capacity estimate) = 3

  2. Idle percentage and wasted capacity

    idle% = idle_ticks / total_ticks × 100; wasted_capacity = (idle% / 100) × cores

  3. Idle CPU %

    = 65.00

  4. Idle Capacity (core-equivalent)

    = 5.20

  5. Busy CPU %

    = 35.00

  6. Idle Capacity (GHz-equivalent)

    = 15.60

  7. Assessment

    = Moderate idle capacity — some headroom remains.

How it works

/proc/stat's cpu line reports cumulative ticks in each state (user, nice, system, idle, iowait, irq, softirq, steal) since boot; idle ticks as a fraction of total ticks over a sampling interval gives idle percentage, the complement of overall utilization. Multiplying idle percentage by core count converts a percentage into a concrete 'how many whole cores' worth of unused capacity exists' figure — useful framing for capacity planning and consolidation decisions, since '35% idle on a 32-core box' is a more actionable number when expressed as roughly 11 idle core-equivalents.

Formula

Idle percentage and wasted capacity

idle% = idle_ticks / total_ticks × 100; wasted_capacity = (idle% / 100) × cores

t_{idle}
idle ticks
t_{total}
total ticks
c
core count

Frequently Asked Questions

Is idle time from /proc/stat the same as 'available capacity'?

Mostly, but with nuance — idle ticks reflect time the CPU had literally nothing scheduled, which is a reasonable proxy for spare capacity for CPU-bound work, but it doesn't account for memory, I/O or network limits that might prevent a workload from actually using that idle CPU time.

What's the difference between idle and iowait in /proc/stat?

Both represent the CPU doing no useful work, but iowait specifically means idle-while-waiting-for-outstanding-I/O, whereas plain idle means genuinely nothing was pending. High iowait alongside low plain-idle suggests I/O is the limiting factor even though the CPU itself isn't computing.

Why measure idle over an interval instead of reading /proc/stat once?

The counters in /proc/stat are cumulative since boot, so a single reading just shows historical totals; sampling twice and taking the delta over a known interval (the same technique tools like `top` and `mpstat` use internally) is required to get a current, meaningful idle percentage.

You might also need