Skip to content
ENExplore Calculators

Interrupt Rate Calculator

Calculate hardware interrupt rate per second and its CPU overhead impact.

About Interrupt Rate Calculator

/proc/interrupts exposes cumulative interrupt counts per IRQ line per CPU since boot; sampling it twice and dividing the delta by the elapsed time gives interrupts per second, the standard way tools like `vmstat` (in) and `mpstat` (%irq/%soft) derive their interrupt-rate metrics. Multiplying that rate by average handler execution time estimates the CPU time consumed purely by interrupt handling — usually negligible, but on high-throughput network or storage systems with poor IRQ distribution across cores, this overhead can become a measurable and unevenly-distributed tax on available CPU capacity.

Formula

Interrupt rate and overhead

interrupts_per_sec = (count_t1 − count_t0) / interval; overhead = interrupts_per_sec × handler_time

C_0
count at t0
C_1
count at t1
"\\Delta t"
interval seconds
h
handler execution time

Worked example

With the default values below, Interrupt Rate Calculator returns Interrupts per Second of 5,000.0. Change any input above and every figure here is recalculated in your browser.

Inputs used

Interrupt Count at t0 (from /proc/interrupts)minimum 0
1,000,000
Interrupt Count at t1 (from /proc/interrupts)minimum 0
1,050,000
Sampling Interval (seconds)minimum 0.1
10
Average Handler Execution Time (µs)minimum 0
5
CPU Coresminimum 1
4

Results

Interrupts per Second
5,000.0
CPU Overhead (% of total capacity)
0.6250%
CPU Overhead (% of one core)
2.5000%
Interrupt Count Delta
50,000
Assessment
Normal interrupt rate for typical server workloads.

Step by step

  1. 1Values used
  2. 2Interrupt rate and overhead
  3. 3Interrupts per Second= 5,000.0
  4. 4CPU Overhead (% of total capacity)= 0.6250
  5. 5CPU Overhead (% of one core)= 2.5000
  6. 6Interrupt Count Delta= 50,000
  7. 7Assessment= Normal interrupt rate for typical server workloads.

Assumptions and limits

  • The result is derived only from the 5 inputs listed above. Anything not among them is not part of the calculation.
  • In particular, this calculator does not take inflation, tax, fees or charges or compounding frequency into account.
  • Figures are rounded for display to 4 decimal places, so totals built from several rounded parts can differ slightly from the unrounded arithmetic.

How these calculators are built and tested is described on the Methodology page. If a figure looks wrong, please report it.

Frequently Asked Questions

Why does my interrupt rate need two samples instead of one?

/proc/interrupts reports a cumulative counter since boot, not a rate — a single reading just tells you the total historical count. Rate requires sampling the counter at two points in time and dividing the difference by the elapsed interval, the same approach `vmstat 1` uses internally for its 'in' (interrupts/sec) column.

What's the difference between hardware interrupts and softirqs?

Hardware interrupts (IRQs) are raised directly by devices and handled with minimal, fast top-half handlers; much of the actual processing work is deferred to softirqs (bottom halves) or threaded IRQ handlers, which run later at a lower priority. `mpstat`'s %irq and %soft columns report these separately, and high %soft often indicates network packet processing (NET_RX/NET_TX softirqs) load.

How can I spread interrupt load across multiple cores?

Check /proc/interrupts per-CPU columns to see if one core is handling disproportionately many interrupts for a given IRQ, then use `irqbalance` (usually running by default) or manually set /proc/irq/<N>/smp_affinity to distribute a busy device's interrupts (e.g. a multi-queue NIC) across more cores.

Interrupt Rate Calculator – Calculate Interrupts per Second