首页/云/可观测性速查/USE 方法:Utilization、Saturation、Errors
监控体系与方法40 条

USE 方法:Utilization、Saturation、Errors

面向资源(CPU、内存、磁盘、网络、连接池等)的三维检查法:使用率、饱和度、错误数;适合排查机器变慢、服务变慢背后的资源瓶颈。

可观测性速查云更新于 2026-10-13

USE 方法是什么

USE 是 Brendan Gregg 提出的资源性能分析方法:对每一个资源都问三个问题,使用率有多高、是否已经饱和、有没有出错。它的价值在于把机器为什么慢这类模糊问题拆成可逐项核对的清单,避免只盯着 CPU 一个指标反复打转,也避免遗漏真正紧张的那类资源。

基本信息

提出者Brendan Gregg(Systems Performance 作者)
适用范围CPU、内存、磁盘、网络、连接池、线程池等一切有限资源
三个维度Utilization 使用率、Saturation 饱和度、Errors 错误数
配套方法请求侧用 RED,两者分别覆盖服务与资源两端

典型使用场景

  • 主机变慢排查:按资源清单逐项确认,快速排除无关项
  • 容器资源限制评估:对比 limit 与实际使用率,判断是否频繁触顶
  • 容量规划:使用率长期趋势与饱和事件频次共同决定扩容时机
  • 数据库性能分析:连接池使用率、慢查询排队、锁等待三项组合判断
  • 网络问题定位:带宽占用、TCP 重传与丢包、网卡错误计数

资源速查

资源使用率 Utilization饱和度 Saturation错误 Errors
CPU非 idle 时间占比运行队列长度与 load内核报告的错误,较少见
内存已用占总量的比例swap 换入换出速率OOM 事件与分配失败
磁盘IO 繁忙时间占比IO 队列深度与等待时长读写错误计数
网络带宽占用比例TCP 重传、丢包、队列积压接口错误与丢弃计数

常见饱和信号查询

常见饱和信号查询
# 磁盘繁忙程度:接近 1 表示设备几乎一直在服务 IO
rate(node_disk_io_time_seconds_total[5m])

# 每核负载近似值
node_load1 / count by (instance) (node_cpu_seconds_total{mode="idle"})

# 可用内存变化斜率:持续为负说明内存在被持续消耗
deriv(node_memory_MemAvailable_bytes[30m])
先看饱和再看使用率:高使用率未必出问题,但一旦出现排队(饱和),延迟就会立刻上升,因此饱和是更接近症状的信号。
内存使用率有口径差异:Linux 上优先看 MemAvailable 而不是 MemFree,用 MemFree 判断会长期误报内存不足。

易错点

  • 只盯 CPU 使用率:磁盘、网络或连接池已经饱和时,CPU 可能很空闲,问题会被长期误判
  • 把磁盘繁忙度直接当瓶颈:固态盘与机械盘的承受区间不同,需结合 IO 等待时长一起判断
  • 用 MemFree 判断内存压力:页缓存让空闲内存看起来很少,应使用 MemAvailable
  • 容器里读宿主机指标:未加限制的采集会把同节点其他容器的负载算进来,结论失真

数据来源与参考

  • Brendan Gregg · The USE Method(brendangregg.com/usemethod.html)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌