首页/系统与基础设施/存储速查/存储性能抖动的原因排查
存储运维与性能60 条

存储性能抖动的原因排查

存储性能抖动是秒级甚至毫秒级的不稳定,平均值看不出来。排查靠时间特征反推来源:整点周期多为快照备份,分钟级水位波动多为缓存下刷,持续性抬升多为重建或 GC,随机尖刺多为链路重传与多路径切换。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌‌​​​​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌​​‌‌​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​‌‌​‌​‌‌​​​​‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌​​‌​‌​​‌​‌‌​‌​‌‌​‌​‌​​‌‌​‌​​‌​‌‌‌​‌​​​‌‌‌​‌​​​‌‌​​‌​‌​‌‌‌​​‌​​​‌​‌‌​‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌‌​‌​‌​‌‌​​​‌​​‌‌​‌‌​​​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌​‌​​​​‌‌​‌‌‌‌​‌‌​‌‌‌‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

抖动的性质

抖动指存储延迟或吞吐在短时间尺度上反复跳动,业务感受是「忽快忽慢」,而看小时级平均值时一切正常。它几乎从不来自单一原因,而是排队、后台任务、缓存水位、链路错误几件事叠加的结果。因此排查的第一步不是调参数,而是把抖动的时间特征画出来,用周期性去反推触发源。

基本信息

必看指标P99 / P99.9 延迟、平均队列长度、IOPS 与带宽的同步波动、链路错误计数
采样粒度抖动排查用秒级采样,分钟级平均值会把尖刺抹平
分层来源介质(重建、GC、介质错误)、控制器(缓存下刷、保护部件自检)、路径(误码、切换)、网络(拥塞、丢包)、主机(队列深度、同宿干扰)
时间特征周期性、水位相关、持续性抬升、随机尖刺四类,对应完全不同的原因
判读基线与业务无变更时的历史同期对比,绝对值意义有限
副作用风险为压抖动而盲目放大队列深度,会把排队问题变成更长的排队时间

典型使用场景

  • 业务反馈「白天正常、整点前后变慢」,需要定位是否为快照或备份任务占用带宽时
  • 虚拟化集群中个别虚拟机卡顿,需要区分是存储侧抖动还是主机侧 CPU 争抢时
  • 新开快照策略或精简置备卷扩容后出现抖动,验证是否与空间分配动作相关时
  • 阵列重建期间性能明显下滑,评估是否需要限制重建速率或调整窗口时
  • 同一批次服务器表现不一致,排查是否由链路亚健康而非负载差异导致时

秒级采样与对照观察

秒级采样与对照观察
# 秒级看设备级延迟拆分与队列积压,连续观察多个周期
iostat -x 1 60
# 分别看读写延迟与队列深度,判断是排队还是介质本身变慢
sar -d 1 30
# 采集分位数而不是平均值,尖刺只在 P99 以上可见
fio --name=jit --rw=randread --bs=4k --iodepth=32 --runtime=60 --percentile_list=50:99:99.9
# 内核日志里的链路重置、超时、下刷异常往往与抖动时间点吻合
journalctl -k --since '1 hour ago' | grep -Ei 'i/o error|reset|timeout|fault'

时间特征反推原因

表现优先怀疑验证方式
整点或固定间隔出现快照、备份、巡检等计划任务对齐任务时间表与抖动时刻
几分钟一次的波动缓存下刷水位、控制器自检查缓存策略与保护部件状态
重建期间持续抬升重建占用、未限速查重建进度与限速配置
无规律随机尖刺链路重传、多路径切换查误码计数与路径事件日志
抖动排查要固定变量:同一时间段、同一负载模型、同一采样粒度。改变其中一个维度后对比出来的差异,往往只是时间点在变,而不是问题在变。
降级运行或重建期间本身就处于高抖动状态,此时不要同时执行其他存储侧变更,否则一旦出现二次故障,可回退的选项会被大幅压缩。

易错点

  • 只看平均值就宣布存储没问题,业务真实感受由 P99 决定
  • 采样粒度太粗,秒级尖刺在分钟级数据里完全消失,导致结论为「查无异常」
  • 把抖动当容量问题,直接扩容;排队与后台任务引起的抖动不会因为加了盘就消失
  • 忽略主机侧因素:同宿其他负载、页缓存下刷、CPU 争抢都会在存储指标上表现出抖动
  • 在抖动没定性前就调整缓存或队列参数,把可复现的问题变成不可复现

数据来源与参考

  • 论文《The Tail at Scale》(Dean & Barroso, CACM 2013)
  • NetApp 官方文档《Performance Troubleshooting Guide》
  • VMware 官方文档《存储性能抖动与队列深度排查》

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/storage/performance-jitter-troubleshooting.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌‌​​​​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌​​‌‌​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​‌‌​‌​‌‌​​​​‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌​​‌​‌​​‌​‌‌​‌​‌‌​‌​‌​​‌‌​‌​​‌​‌‌‌​‌​​​‌‌‌​‌​​​‌‌​​‌​‌​‌‌‌​​‌​​​‌​‌‌​‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌‌​‌​‌​‌‌​​​‌​​‌‌​‌‌​​​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌​‌​​​​‌‌​‌‌‌‌​‌‌​‌‌‌‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​