3. 性能指标与数据采集基础

做存储性能监控,第一步不是打开工具看曲线,而是把指标定义对齐。同一句“存储很慢”,在应用侧可能指响应时间超过 20 ms,在阵列侧可能指某个卷的时延升高,在链路侧可能指前端端口利用率接近饱和。如果指标口径不统一,后面的采集、对比和诊断都会失去基准。本节先把 Dell 存储环境中最常用的七类指标讲清楚,再说明 Unisphere、CloudIQ、PowerMax Unisphere 与 Grafana 各自适合采集什么、从哪里取数。

七类核心指标的定义与量纲

IOPS 指单位时间内完成的 I/O 操作次数,单位是次/秒。它必须区分读 IOPS、写 IOPS 和总 IOPS,还要说明块大小,因为 4 KB 随机读和 256 KB 顺序写在相同 IOPS 下代表的负载完全不同。吞吐量(带宽)指单位时间内传输的数据量,单位 MB/s 或 GB/s,等于 IOPS 乘以平均 I/O 大小。二者是同一负载的两种度量:小块随机负载通常 IOPS 高、吞吐低;大块顺序负载则相反。

时延是单个 I/O 从发出到完成的时间,单位 ms 或 μs。工程上要区分平均时延与尾时延(P95、P99),因为平均值会掩盖少量慢 I/O。对 OLTP 类负载,平均读时延 1~5 ms 通常可接受,写时延受后端写缓存与镜像影响会略高;若 P99 时延突然抬升而平均变化不大,往往指向队列积压或个别后端盘异常。

队列深度是某时刻等待处理的 I/O 数量。它和时延通过利特尔法则关联:队列深度 ≈ IOPS × 时延。例如某卷测得 8000 IOPS、平均时延 2 ms,则平均在途 I/O 约为 8000×0.002=16。队列深度升高而 IOPS 不再增长,说明资源已饱和,继续加压只会推高时延。

利用率表示资源繁忙时间占比,如前端端口利用率、后端磁盘利用率、控制器 CPU 利用率。它接近 100% 时不一定立刻变慢,但会显著放大排队时延。缓存命中率是读请求在缓存中直接命中的比例,命中率高可大幅降低读时延;写缓存则更多影响写确认速度,需结合写落盘策略看。读写比例是读 I/O 与写 I/O 的构成比,它决定缓存策略、RAID 写惩罚和带宽规划的方向。

存储性能指标关系与采集链路 应用负载特征 读写比例 I/O 大小(4K/64K/256K) 随机 / 顺序 并发线程数 决定 IOPS 与吞吐的组合 决定缓存与 RAID 策略 核心指标关系 IOPS 次/秒 吞吐量 MB/s 时延 ms / μs 队列深度 在途 I/O 数 利用率 繁忙占比 缓存命中率 读命中比例 队列深度 ≈ IOPS × 时延(利特尔法则) 采集工具 Unisphere(块/文件) CloudIQ(云端汇总) PowerMax Unisphere Grafana(可视化) 按 1min / 5min 粒度采样 保留期决定回溯能力 从采集到判断的链路 ① 确定对象 卷 / 端口 / 池 / 控制器 ② 选指标 IOPS/时延/队列/利用率 ③ 定粒度 1min 实时 / 5min 趋势 ④ 对齐时间 应用与阵列同一时区 ⑤ 判读 瓶颈定位 示例:某卷 8000 IOPS、平均时延 2 ms → 平均队列深度约 16;若队列升至 64 而 IOPS 不变,说明已饱和 采集前先统一时区与采样粒度,否则跨工具对比会出现“时间错位”的假瓶颈

采集工具的分工与入门操作

Unisphere 是 Dell 块与文件存储的本地管理入口,适合看实时与近线数据。以 Unity/VNX 为例,登录后进入 Performance 页面,选择监控对象(LUN、文件系统、前端端口、SP),勾选指标后即可看到曲线;也可在 System > Metrics 中导出 CSV 做离线分析。它的优势是对象粒度细、无需额外组件,适合排障时快速定位到具体卷或端口。

CloudIQ 是云端主动监控平台,通过阵列上的 Secure Remote Services 或 CloudIQ Collector 上报数据。它不替代本地实时排障,但擅长跨站点汇总、趋势对比和健康评分。入门时先确认阵列已连接、资产已发现,再在 Performance 与 Health 视图中查看 IOPS、时延、利用率的 30 天趋势,并配置异常告警阈值。

PowerMax Unisphere 面向高端全闪阵列,指标更细:除了前端 IOPS 与时延,还可看 SRDF 复制时延、存储池(SRP)利用率、端口组与掩蔽视图的负载分布。排障时常用 Performance > Array 与 Performance > Storage Group 两层视图,先看阵列整体,再下钻到具体存储组。

Grafana 负责把上述数据统一可视化。典型做法是用 Prometheus 或 InfluxDB 作为时序库,通过 Dell 提供的导出器或脚本把 Unisphere/CloudIQ 的指标写入库中,再在 Grafana 中建面板。入门配置可参考如下采集片段:

# 示例:以 60s 间隔采集某卷指标并写入时序库(示意)
scrape_interval: 60s
targets:
  - device: unity-01
    metrics: [read_iops, write_iops, read_latency_ms, write_latency_ms, queue_depth, port_util]
    labels: {site: "sh-a", tier: "prod"}
# Grafana 面板建议:
# 1) 时延 P95 折线 + 阈值线(如 10ms)
# 2) IOPS 与队列深度双轴,观察饱和拐点
# 3) 端口利用率热力图,定位热点端口
采集粒度要与诊断目标匹配:看突发毛刺用 1 min 甚至更细,看容量与趋势用 5 min 或 15 min。粒度太粗会平滑掉尖峰,太细则数据量激增、保留期缩短。

指标组合的判读逻辑

单看一个指标容易误判,组合起来才有诊断力。常见组合如下:IOPS 高 + 时延低 + 队列浅,说明负载健康、资源有余量;IOPS 不再上升 + 时延抬升 + 队列变深,说明某层已饱和,需继续下钻到端口、后端盘或缓存;吞吐高 + IOPS 低,通常是顺序大块负载,重点看带宽与链路;缓存命中率骤降 + 读时延上升,可能是工作集变大或缓存被写负载挤占。

读写比例也直接影响判断:写比例高时,RAID 写惩罚和镜像复制会放大后端压力,此时应同时看写时延与后端磁盘利用率;读比例高时,缓存命中率与读时延的关联更紧。把这些指标按“对象—时间—粒度”三个维度对齐后,再进入具体工具取数,才能让后续的瓶颈诊断有据可依。