USE 方法(利用率/饱和度/错误)

USE 方法是 Netflix 工程师 Brendan Gregg 提出的系统性能分析方法,全称是 Utilization-Saturation-Errors。与 RED 方法侧重于服务层面的请求指标不同,USE 方法专注于基础设施资源——CPU、内存、磁盘、网络等。USE 方法的目标是快速定位系统瓶颈:「所有资源都正常吗?有没有资源已经饱和?」

USE 方法的核心假设是:每个资源都有三个关键指标——利用率(在给定时间内的使用程度)、饱和度(额外工作排队的程度)、错误(错误发生率)。只要这三个指标都在合理范围内,资源层面就没有瓶颈。

三类指标的定义

利用率(Utilization):资源被使用的时间百分比。100% 利用率意味着资源始终在忙碌。利用率高不一定有问题(如 CPU 100% 可能是正常的高负载),但它是判断资源是否被充分利用的起点。

饱和度(Saturation):资源排队的工作量。例如,CPU 队列长度、内存使用量接近上限、磁盘 IO 队列深度。饱和度是比利用率更重要的指标——即使利用率不高,如果饱和度高,说明请求已经开始排队等待。

错误(Errors):资源相关的错误发生率。CPU 的错误率通常很低,但网络接口的错包率、磁盘的 I/O 错误率、内存的 ECC 错误率都是重要的健康指标。

应用示例:分析 Linux 系统

资源利用率饱和度错误
CPUtopvmstat%CPUvmstatr 列(运行队列长度)N/A
内存free 的使用比例vmstatsi/so(换入/换出)dmesg 的 OOM 事件
磁盘iostat%utiliostatavgqu-sz(队列长度)smartctl 的错误计数
网络sar -n DEV%ifutilnetstat 的连接队列溢出netstat -i 的错误计数

USE 方法的使用流程:首先检查错误(最直接的问题指示器);然后检查饱和度(排队是性能下降的信号);最后检查利用率(高利用率需要结合饱和度判断)。如果三类指标都正常,资源层面可以排除。