首页/系统与基础设施/存储速查/存储队列积压与拥塞分析
存储运维与性能60 条

存储队列积压与拥塞分析

存储拥塞发生在路径上最窄的那一段队列,表现为时延上升而完成速率不变。处置顺序是先降到达速率与断开重试放大,再逐段定位最窄处扩容,并为租户设置并发上限;队列深度调大能吸收突发但会恶化尾时延。

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

积压一定发生在最窄处

存储路径上分布着许多队列:应用线程池、操作系统块层、主机总线适配器、存储前端端口、后端磁盘组,每一段都有容量上限。请求一旦超过某一段的处理速度,就在该段排队,队列填满后新请求只能等待或直接被拒绝。排队本身的规律可以用「平均排队请求数 ≈ 到达速率 × 平均等待时间」来估计,所以看到队列变长时,要么到达速率上去了,要么某段处理变慢了。

基本信息

队列位置应用线程池、块层、适配器、前端端口、后端盘组
观测指标队列长度、时延分位、完成速率、拒绝与重试计数
容量参数块层队列深度、适配器队列深度、端口并发上限
拥塞特征时延上升而完成速率不变,重试与超时同步增加
处理方向降到达速率、扩最窄段、断开重试放大链

典型使用场景

  • 批量任务上线后时延整体抬升:确认队列是否被填满
  • 共享存储多主机争用:总量超过后端能力导致集体排队
  • 接口超时集中爆发:重试叠加使队列进一步恶化
  • 链路抖动后恢复缓慢:排队请求一次性释放形成尖峰
  • 容量规划:用队列余量判断还能承接多少新业务

拥塞处置的优先顺序

拥塞处置的优先顺序
# 第 1 步 止损:暂停非关键批量任务与备份窗口,先把到达速率降下来
# 第 2 步 断开放大链:给应用与客户端设置退避与重试上限,避免重试风暴
# 第 3 步 定位最窄段:逐段比较完成速率,最慢的一段就是拥塞点
# 第 4 步 扩最窄段:增加端口或链路、提升后端并行度、调整队列深度
# 第 5 步 设限:对单主机、单租户、单业务设置并发或带宽上限,防止互相挤占
# 第 6 步 复盘:把触发条件写入容量评估与变更评审,避免重复发生

拥塞表现对照

表现说明建议动作
队列长且时延长到达速率超过处理能力先降并发,再评估扩容
队列长但时延稳定后端尚有余力,属正常缓冲持续观察,不必立即干预
完成速率下降后端或介质侧出现退化查介质健康与后端负载
超时与重试齐增已进入重试放大阶段限制重试次数并加退避
个别主机时延高该主机侧队列或多路径不均衡检查本机适配器与路径分布
拥塞期间最危险的动作是重试:每一次失败重试都会增加到达速率,把本该缓解的排队推向崩盘。客户端必须设置指数退避与重试上限。
队列深度不是越大越好:更深的队列能吸收突发,但会让请求等待更久才被处理,尾时延明显变差。深度参数应结合业务的超时时间设定。

易错点

  • 为追求吞吐把队列深度调到很大,尾时延恶化导致应用大面积超时
  • 故障期间不加退避地疯狂重试,把局部拥塞放大为全局不可用
  • 仅扩容后端却不限制单主机并发,多主机继续互相挤占
  • 把所有慢都归因于存储本体,忽略应用侧线程池与连接池的排队
  • 共享存储上缺少租户级限速,单一业务的大批量任务拖垮其他业务

数据来源与参考

  • 存储厂商官方文档:队列深度与拥塞调优建议
  • Linux 内核官方文档:块层队列(blk-mq)与请求队列参数
  • device-mapper-multipath 官方手册:路径队列特性说明

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

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