Pressure Stall Information
A kernel metric for how much time work spent waiting on CPU, memory, or I/O, which measures contention directly where utilization figures only hint at it.
Pressure stall information (PSI) is a Linux kernel metric for the share of time tasks spent stalled waiting on a resource: CPU, memory, or I/O. It appears in /proc/pressure/{cpu,memory,io} and per cgroup, as running averages over 10, 60, and 300 seconds.
Each resource reports two lines:
- some: the share of time at least one task was stalled on that resource. Some work was being delayed.
- full: the share of time all non-idle tasks were stalled at once. No useful work was happening at all.
PSI exists because the traditional figures answer the wrong question. CPU utilization says how busy a resource is, not whether anyone is waiting for it, and 100% busy with nobody waiting is a well-used machine, not a problem. Load average mixes CPU and I/O waiters into one number, lags by minutes, and never says which resource is short. Free memory says almost nothing on a system where unused RAM holds the Page Cache by design. PSI measures the thing that actually hurts, lost time, per resource. A memory "some" figure climbing while free memory looks fine is how Swap thrashing shows itself before anything is killed.
That makes PSI a good trigger. Userspace OOM daemons act on sustained memory pressure instead of waiting for the kernel's last resort, and services can shed load or apply Backpressure when their own cgroup's pressure rises. It is a signal of saturation rather than activity, which is what alerting should be built on.
Like any single metric, it needs cross-checking. The I/O figure counts time tasks spend in certain kinds of wait, which does not always correspond to device work: a reading can be high on a machine whose disks show no throughput at all. Before acting on a surprising number, confirm it against something independent, such as per-device throughput, per-process stall states, or whether anything actually feels slow. A metric that disagrees with every other piece of evidence is evidence about the metric; see Ground Truth.
See also5
Resource Starvation
Failures caused by competition for a finite shared resource rather than by any defect.
Testing & Verification18 connections
Load Average
The three numbers in uptime and top, what Linux actually counts in them, and why they are a rough smoke alarm rather than a measure of how busy a machine is.
Systems & Tooling4 connections
CPU Scheduler
The part of the kernel that decides which runnable thread gets each CPU core next, and for how long, trading throughput against latency.
Systems & Tooling16 connections
Observability
How much of a system's internal state can be inferred from what it emits.
Method32 connections
Instrumentation
Adding measurement to code so its execution can be observed, and the distortions that introduces.
Testing & Verification19 connections
Linked from9
- Control GroupsSystems & Tooling
The Linux kernel feature that caps and accounts for a process group's CPU, memory, and I/O — the resource-limiting half of a container.
- CPU SchedulerSystems & Tooling
The part of the kernel that decides which runnable thread gets each CPU core next, and for how long, trading throughput against latency.
- Load AverageSystems & Tooling
The three numbers in uptime and top, what Linux actually counts in them, and why they are a rough smoke alarm rather than a measure of how busy a machine is.
- Out-of-Memory KillerSystems & Tooling
The kernel's last resort when memory is exhausted, killing a process chosen by heuristic, and the userspace daemons that act earlier with better judgment.
- Page CacheSystems & Tooling
The operating system's use of spare memory to hold recently read and written file data, which makes repeated disk access fast and makes "free memory" look alarmingly low.
- ProcessSystems & Tooling
A running program with its own memory, environment, and identity.
- Resource StarvationTesting & Verification
Failures caused by competition for a finite shared resource rather than by any defect.
- SwapSystems & Tooling
Somewhere to put memory pages that are not being used, so RAM can go to pages that are, whether that place is a disk or a compressed region of RAM itself.
- Virtual MemorySystems & Tooling
Giving every process its own private address space that the kernel maps onto physical memory page by page, on demand.