延迟、带宽、吞吐量和 QPS 有什么区别?网络性能指标应该怎么看?
简化版
延迟是一次请求从发出到收到响应花多久,带宽是链路理论传输能力,吞吐量是实际单位时间传了多少数据,QPS 是单位时间处理多少请求。带宽高不代表延迟低,QPS 高也不代表用户体验好;网络性能要同时看 RTT、丢包、吞吐、并发连接、首字节时间和尾延迟。
详细版
这几个指标经常被混用,但含义完全不同:
| 指标 | 含义 | 常见单位 | 关注点 |
|---|---|---|---|
| 延迟 | 一次交互耗时 | ms | 用户等待多久 |
| 带宽 | 链路最大传输能力 | Mbps/Gbps | 管道有多粗 |
| 吞吐量 | 实际传输速率 | MB/s、Mbps | 真正跑了多少 |
| QPS | 每秒请求数 | req/s | 服务处理能力 |
| 尾延迟 | P95/P99 请求耗时 | ms | 少数慢请求体验 |
例如一条 1 Gbps 跨国专线带宽很高,但 RTT 可能有 180 ms,小包交互仍然慢。另一个接口 QPS 可以达到 10000,但 P99 延迟 3 秒,用户仍然觉得卡。面试回答要把“容量”和“响应速度”分开,再结合丢包、排队、连接复用和协议开销解释。
完整版教学
一、延迟衡量的是一次交互要等多久
延迟通常指请求从客户端发出到收到响应之间的时间。网络层常说 RTT,也就是一个包从 A 到 B 再回到 A 的往返时间。应用层看到的接口耗时还包括 DNS、建连、TLS 握手、排队、服务端处理和响应传输。
一个网页首包慢,可能不是带宽不够,而是前置步骤太多:
DNS 20ms + TCP 握手 50ms + TLS 握手 50ms + 服务端处理 80ms + 传输 10ms = 210ms
所以优化延迟经常从减少往返次数入手,例如 DNS 缓存、连接复用、TLS 1.3、HTTP/2 或 HTTP/3,而不是只升级带宽。
延迟关注“等多久”,带宽关注“管道多粗”,这两个问题不能互相替代。
二、带宽表示理论容量,不等于真实速度
带宽是链路在理想条件下单位时间能传输多少 bit。运营商说 100 Mbps,表示理论上每秒 100 兆 bit,不是 100 MB。换算时要除以 8,所以 100 Mbps 理论上约 12.5 MB/s,还要扣除协议头、拥塞控制、丢包重传和应用处理开销。
100 Mbps / 8 = 12.5 MB/s
实际下载速度可能只有 10~11 MB/s
真实速度跑不满带宽,常见原因是 RTT 高导致 TCP 窗口不够、丢包触发拥塞控制、服务端限速、磁盘读写瓶颈、客户端处理慢。面试里如果只说“加带宽”,通常是不完整的。
三、吞吐量是实际跑出来的速度
吞吐量是单位时间真正完成的数据传输量。它受带宽上限约束,但也受协议、窗口、丢包、CPU、磁盘、应用逻辑影响。带宽像高速路车道数,吞吐量像某一分钟真实通过了多少车。
例如链路带宽 1 Gbps,RTT 100 ms,如果 TCP 接收窗口只有 1 MB,理论最大吞吐约:
吞吐 ≈ 窗口 / RTT = 1 MB / 0.1s = 10 MB/s ≈ 80 Mbps
这时即使链路是 1 Gbps,也只能跑到约 80 Mbps。要跑满高带宽高延迟链路,需要足够大的窗口和缓冲,也就是 BDP 思维。
四、QPS 是请求处理能力,不等于网络吞吐
QPS 关注每秒处理多少请求。一个接口返回 1 KB,10000 QPS 的网络出方向约 10 MB/s;另一个下载接口每个请求返回 10 MB,即使只有 100 QPS,也要 1000 MB/s 的出带宽。请求数和数据量不是一回事。
接口 A: 10000 req/s * 1 KB = 10 MB/s
接口 B: 100 req/s * 10 MB = 1000 MB/s
因此容量评估要同时看 QPS 和平均响应大小。API 网关更关心 QPS、连接数、P99;文件下载和视频分发更关心带宽、缓存命中率和跨地域链路。
五、尾延迟比平均延迟更能反映体验
平均延迟会掩盖少数慢请求。假设 100 个请求中 95 个是 50 ms,5 个是 2000 ms,平均值约 147.5 ms,看起来还行,但 P95 或 P99 会暴露明显卡顿。线上体验尤其怕尾延迟,因为一次页面可能依赖多个接口,只要一个慢就拖住整体。
| 指标 | 含义 | 用途 |
|---|---|---|
| Avg | 平均耗时 | 看整体趋势 |
| P50 | 一半请求低于该值 | 看典型体验 |
| P95 | 95% 请求低于该值 | 看大多数用户 |
| P99 | 99% 请求低于该值 | 看极端慢请求 |
面试回答性能指标时,主动补一句“要看 P95/P99,而不是只看平均值”,会很加分。
六、丢包和抖动会放大延迟问题
网络不只是快慢,还有稳定性。丢包会触发 TCP 重传和拥塞窗口下降,抖动会让实时音视频卡顿。1% 丢包对普通下载可能只是变慢,对 WebRTC 会议可能就是明显花屏或声音断续。
一次请求:
正常 RTT = 40ms
发生丢包 -> 等待重传或快速重传 -> 额外增加几十到几百 ms
所以网络性能诊断要同时看 RTT、丢包率、重传率、带宽利用率和队列长度。只看 ping 平均值,很容易漏掉偶发抖动和尾部慢请求。
七、不同场景指标优先级不同
聊天系统关心低延迟和连接稳定;大文件下载关心吞吐和带宽利用率;直播关心端到端延迟、卡顿率和丢包;API 服务关心 P95/P99、连接复用和首字节时间。指标没有绝对主次,要看业务目标。
| 场景 | 优先指标 |
|---|---|
| 登录接口 | P99、错误率、TLS 建连耗时 |
| 文件下载 | 吞吐量、带宽、缓存命中率 |
| 实时音视频 | RTT、抖动、丢包、码率 |
| 网页首屏 | DNS、连接复用、TTFB、资源大小 |
会看指标比会背名词更重要。面试官问“网络慢怎么排查”,本质是在看你能不能把现象拆成可测量指标。
八、常见误区与追问
- 误区:带宽越大,接口延迟一定越低。 带宽提高容量,但 RTT、握手次数、服务端排队和丢包仍然会影响延迟。
- 误区:QPS 高说明用户体验好。 QPS 是吞吐能力,还要看 P95/P99、错误率和请求大小。
- 误区:平均延迟能代表整体体验。 平均值会掩盖尾延迟,线上更要关注 P95/P99。
- 误区:下载慢一定是客户端网速差。 也可能是 TCP 窗口、丢包、服务端限速、磁盘或 CDN 命中率问题。
- 追问:为什么 1 Gbps 链路跑不满? 可能是 BDP 下窗口太小、丢包降窗、应用发送慢或中间设备限速。
- 追问:RTT 和 TTFB 有什么区别? RTT 是网络往返时间,TTFB 还包含请求发送、服务端处理和首字节返回。
- 追问:如何评估一个接口的网络容量? 同时看 QPS、响应大小、连接数、带宽、P99 和重传率。
九、加强记忆
网络性能指标按“速度、容量、稳定性、体验”串起来:延迟看一次请求等多久,带宽看管道多粗,吞吐看实际传多少,QPS 看每秒处理多少请求,P95/P99 看尾部体验,丢包和抖动看稳定性。回答性能题时先把指标分清,再结合业务场景判断瓶颈。