首页/系统与基础设施/存储速查/存储延迟毛刺与长尾现象分析
存储运维与性能60 条

存储延迟毛刺与长尾现象分析

长尾延迟是少数请求极慢、多数请求正常的状态,均值完全掩盖它。判断存储是否可用要看 P99 甚至 P99.9,并结合队列模型理解:利用率越高,等待时间越呈非线性上升。

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

长尾延迟是什么

长尾延迟指大部分请求很快、少数请求异常慢的分布形态。均值会被少量极慢请求拉高或掩盖,因此存储侧判读要用分位数:P99 表示每 100 个请求里有 1 个慢于此值。排队理论给出的规律是,介质利用率接近饱和后,等待时间不是线性增长,而是急剧攀升,这也是高负载下延迟毛刺出现得格外频繁的原因。

基本信息

指标口径均值 / 中位 / P95 / P99 / P99.9 / 最大值,用途各不相同
体验对应中位代表典型请求,P99 代表明显的慢请求,P99.9 决定用户抱怨
队列关系平均队列长度 = 到达率 × 平均等待时间(Little 定律);队列变长即延迟变长
放大来源缓存未命中、校验收敛、重建、GC、快照元数据处理、链路重传
健康判读P99 与中位的比值越大,排队与长尾越明显
应用联动应用与数据库超时应参照 P99.9 设置,而不是参照平均值

典型使用场景

  • 与业务方约定存储 SLA 时,需要把「延迟」换算成分位数口径而不是平均延迟时
  • 数据库偶发提交超时,用分位数证实是存储长尾而非锁等待时
  • 对比两款存储或两套配置,用同一分位数口径比较优劣时
  • 虚拟化平台集群心跳超时、虚拟机卡顿,评估是否由存储 P99.9 超标引发时
  • 容量规划时判断当前利用率是否已经进入延迟非线性上升区间时

分位数采集与队列观察

分位数采集与队列观察
# 一次采集多个分位数,长尾在 99.9 以上才显形
fio --name=tail --rw=randread --bs=4k --iodepth=64 --runtime=60 \
    --percentile_list=50:90:99:99.9:99.99
# 观察队列积压与设备利用率,判断是否已进入排队区
iostat -x 1 30
# 延迟按读、写分开看,两者长尾成因常常不同
sar -d 1 30
# 换算一次队列压力:队列长度与延迟应同向变化
# 具体工具字段以本机 sysstat 版本为准

分位数逐列读法

指标含义异常信号
中位半数请求快于此值,代表典型体验持续高于历史基线说明整体变慢
P95每 20 个请求有 1 个慢于此值与中位差距过大说明分布开始发散
P99每 100 个请求有 1 个慢于此值业务慢请求投诉的直接来源
P99.9每 1000 个请求有 1 个慢于此值超过应用超时阈值即引发报错
最大值观测窗口内最差一次单点极值常对应重传或切换事件
长尾是对比出来的:判断健康与否看 P99 与中位的比值以及趋势,而不是看某个固定毫秒数。同一数值在低负载与高负载下的含义完全不同。
应用超时阈值设得比存储 P99.9 还小,等于让存储的正常长尾直接变成业务报错;这类问题经常被误判为存储故障。

易错点

  • 用平均延迟做 SLA 与容量承诺,长尾问题在报表上永远看不到
  • 只采一次数据就下结论:长尾受负载与后台任务影响,需要多窗口对比
  • 把 P99 超标直接归因于存储硬件,忽略应用层同步写、序列化与锁竞争
  • 在利用率已经很高时通过加大队列深度追求吞吐,长尾进一步恶化
  • 用同一套超时阈值适配所有存储层,未区分本地盘、阵列与分布式存储的长尾量级

数据来源与参考

  • 论文《The Tail at Scale》(Dean & Barroso, CACM 2013)
  • 论文《Windows Azure Storage: A Highly Available Cloud Storage Service with Strong Consistency》(SOSP 2011)
  • Linux iostat(1)、blktrace(8) 手册页延迟统计

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

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