Services

Resources

Company

USE method (utilization, saturation and errors)

The USE method is a way to find performance bottlenecks by checking three things for every resource: utilization, saturation and errors. Brendan Gregg devised it. You list the resources, such as CPU, memory, disks and network, and ask the same three questions of each one, instead of staring at whatever metrics happen to be on a dashboard.

How it works

Utilization is how busy the resource is. Saturation is how much extra work is waiting because the resource is full. Errors are failed operations. For a node with 4 vCPUs:

  • CPU: utilization is 85% busy. Saturation is a run queue of 9 threads for 4 CPUs. Errors are rare, so check the kernel logs.

  • Memory: utilization is used divided by total. Saturation is swapping or paging. Errors include OOM (out of memory) kills.

  • Disk: utilization is the percent of time busy. Saturation is the I/O queue length. Errors are device errors.

  • Network: utilization is bandwidth used. Saturation is drops or retransmits. Errors are interface errors.

Why it matters in production

It gives a short checklist for an incident, so you find a full resource in minutes. It pairs with RED metrics: RED shows how a service looks to its users, and USE shows which resource is under it. Watch averages, because a 60% average over a minute can hide bursts of saturation.

See also

On the One2N blog

Further reading

Four-panel comic about USE method: The app is slow. Dashboards show 40 graphs and nobody knows where to look; USE: list every resource, then check Utilization, Saturation and Errors for each; CPU 85% busy, run queue 9 on 4 CPUs: saturated. Memory fine. Disk fine. Network has zero errors; Found...