Skip to content

QoS 面试要点

正确定义

  • QoS 不是让带宽变大,而是在资源不够时决定“谁先活、谁后死、谁死得体面”——解决的是竞争问题,不是性能问题。
  • 核心公式:QoS = 分类 + 排队 + 调度 + 丢弃策略;可在网络设备、主机内核、应用层实现。

常见误区

  • ❌ QoS = 提速;❌ QoS = 限速;❌ 只能在交换机/路由器上。
  • ✅ 应用层的启动间隔、并发控制、pacing 也是 QoS。

三层视角

  • 应用层:限制同时建链、启动加间隔、按帧率 pacing、控制面高于数据面,拥塞时低优先级流可失败。
  • 主机侧(OS):调 socket 缓冲、TCP pacing、tc + fq/fq_codel/cake、cgroup net_cls/net_prio,减少 burst 和 bufferbloat,让控制流先发送。
  • 网络层(设备):DSCP/ToS 打标与是否被尊重,队列/优先级调度,突发流是否挤掉实时流,低优先级是否丢弃。

四个核心动作

1) 分类:识别流类型(控制、音视频、后台同步、心跳)。
2) 标记:高/中/低优先级或 DSCP/tag。
3) 排队与调度:FIFO、Priority Queue、Fair/Weighted Fair Queue。
4) 丢弃策略:Tail drop、RED、CoDel;精髓在“丢”,没有丢弃策略的 QoS 高峰必失效。

场景化描述示例(RTSP)

  • 多路 RTSP 同时起流时,控制面与数据面争抢 TCP/CPU/队列,关键控制报文延迟/丢失。应用层起流并发限制 + pacing 降低瞬时拥塞,提升成功率。

面试可反问的好问题

  • 高并发下是否有限制同时建链/重连?控制流和数据流是否分级?突发流是否做 pacing?低优先级流是否允许失败?QoS 在应用层还是网络层做?有无同时启动/重连保护?

金句

  • “QoS 解决的是资源竞争,而不是性能不足。”
  • “没有丢弃策略的 QoS,高峰期一定失效。”
  • “最有效的 QoS 往往在应用层,而不是网络层。”