3. 原始性能指标解析

压力测试中,原始性能指标是特征工程的起点。理解每个指标的含义、计算方式及其在系统瓶颈分析中的作用,是构建有效特征的基础。本章将系统解析 CPU、内存、磁盘 I/O 和网络四大类核心指标,并给出特征提取的实操建议。

3.1 CPU 指标

CPU 指标反映处理器的繁忙程度与工作模式。在压力测试中,通常关注 user、sys、iowait 和 idle 四个子项。

指标 含义 特征工程价值
user 用户空间(应用程序)占用 CPU 的百分比 高值表示应用层计算密集,可提取“用户态占比”作为负载特征
sys 内核空间(系统调用、中断)占用 CPU 的百分比 高值暗示系统调用频繁或驱动问题,可构造“内核态/用户态比值”
iowait CPU 等待磁盘 I/O 完成的时间百分比 高值表明磁盘成为瓶颈,可提取“iowait 峰值窗口”作为特征
idle CPU 空闲时间百分比 低值表示 CPU 饱和,可计算“空闲率倒数”作为压力强度特征
实操要点: 在特征提取时,不要仅使用瞬时值。建议以 5 秒或 10 秒为窗口计算滑动平均值,并记录最大值、最小值、标准差,以捕捉 CPU 行为的波动特征。
CPU 指标四象限分析图 user(用户态) 应用层计算密集度 特征:用户态占比 sys(内核态) 系统调用/中断开销 特征:内核/用户比值 iowait(I/O 等待) 磁盘 I/O 阻塞程度 特征:iowait 峰值窗口 idle(空闲) CPU 剩余容量 特征:空闲率倒数 四指标之和 = 100% 相互制约关系

3.2 内存指标

内存指标关注 used、buff/cache 和 available 三个关键值。在压力测试中,内存泄漏和缓存抖动是常见问题。

指标 含义 特征工程价值
used 已使用的物理内存(不含 buff/cache) 持续增长可能暗示内存泄漏,可提取“used 增长率”
buff/cache 内核缓冲区与页面缓存占用的内存 高值不一定坏事,但剧烈波动可能影响性能,可提取“cache 变化率”
available 可分配给新进程的内存(含可回收 cache) 最接近“真实可用”的值,可构造“可用内存比例”作为健康度特征
特征构造示例: 使用 available / total 作为内存压力特征,当该值低于 20% 时,系统进入内存紧张状态。结合 used 的差分序列,可以检测内存泄漏的早期信号。

3.3 磁盘 I/O 指标

磁盘 I/O 指标是压力测试中容易被忽视但影响巨大的维度。重点关注 r/s、w/s、await 和 svctm。

指标 含义 特征工程价值
r/s 每秒读请求次数 与业务读负载正相关,可提取“读请求密度”
w/s 每秒写请求次数 写密集型场景的关键特征,可构造“读写比”
await I/O 请求的平均等待时间(含排队+服务) 高值表示磁盘响应慢,可提取“await 百分位值”
svctm I/O 请求的平均服务时间(不含排队) 反映磁盘硬件性能,可计算“排队时间 = await - svctm”
常见误区: 不要单独使用 svctm 判断磁盘性能。现代 SSD 的 svctm 极低,但 await 可能因队列堆积而升高。建议同时观察 await - svctm 的差值,差值越大说明排队越严重。

3.4 网络指标

网络指标在分布式压力测试中至关重要。核心指标包括 rx/tx bytes、drop 和 error。

指标 含义 特征工程价值
rx bytes 每秒接收字节数 反映入站流量,可计算“带宽利用率”
tx bytes 每秒发送字节数 反映出站流量,可构造“上下行比例”
drop 被丢弃的数据包数量 高值表示网络拥塞或缓冲区不足,可提取“丢包率”
error 发生错误的数据包数量 高值暗示物理链路或驱动问题,可构造“错误包占比”
网络指标特征提取流程 原始网络指标 rx/tx bytes, drop, error 滑动窗口聚合 均值 / 峰值 / 分位数 特征向量 带宽利用率 特征构造示例 带宽利用率 = (rx_bytes + tx_bytes) × 8 / 链路带宽 丢包率 = drop / (rx_packets + tx_packets) 错误占比 = error / (rx_packets + tx_packets)

3.5 指标关联与特征融合

单一指标往往无法准确反映系统状态。在特征工程中,需要将不同维度的指标进行关联分析。

  • CPU + 磁盘: 当 iowait 升高且 await 同步升高时,可构造“I/O 阻塞因子”特征。
  • 内存 + 网络: 当 available 下降且 tx bytes 上升时,可能触发 OOM Killer,可构造“内存网络压力比”。
  • CPU + 内存: 当 user 高且 used 持续增长时,可构造“计算内存协同特征”。
实操建议: 在压力测试数据采集阶段,务必保持所有指标的时间戳对齐。建议使用统一的采样间隔(如 5 秒),并记录每个时间窗口内的聚合值(均值、P50、P95、P99),为后续特征工程提供高质量原始数据。