排队论(Queueing Theory)研究“顾客到达、排队、被服务”的系统;Little 定律(Little's Law)是里面最简洁的守恒关系:稳定系统中,平均在队数量 L = 平均到达率 λ × 平均停留时间 W。
先看奶茶店。一个店员,平均每分钟来 λ 个顾客,做一杯要 1/μ 分钟。利用率(utilization)ρ = λ/μ。ρ 小于 1 系统才稳定。ρ=0.5 时,偶尔排一两个人;ρ=0.9 时,队伍开始明显;ρ=0.99 时,只要有人手抖、机器卡一下,队伍就会爆。经典单服务台模型里,等待时间大致按 1/(1-ρ) 增长:80% 到 90% 不是多等 10%,而是翻着涨;95% 到 99% 再翻几倍。这就是“突然爆炸”的数学来源。
GPU 也一样。请求像顾客,SM、显存带宽、kernel 执行像店员。GPU 利用率冲到 100%,意思是服务台几乎没有空闲。此时任何突发、长尾请求、调度抖动,都没有余量吸收,只能变成排队。排队一长,后面每个请求的停留时间都变长。Little 定律说 L = λW:如果到达率 λ 不变,排队数 L 涨了,停留时间 W 必然涨。反过来,如果你用并发上限把 L 卡死,那吞吐 λ = L/W 也被 W 拖住。所以极限利用率换来的不是线性变慢,而是延迟失控。
排队论和 Little 定律不是一回事。排队论是一整套数学工具箱,包含 M/M/1、M/M/c 等模型,需要假设到达和服务分布;Little 定律是其中一条几乎不依赖分布的守恒律,只约束三个平均值。它不告诉你 P99 具体多少,但告诉你:人、来的速度、等待时间三者绑死,不能只要两个。
| 系统状态 | GPU 利用率示意 | 排队与延迟 | 体验 |
|---|---|---|---|
| 轻载 | 30% | 几乎不排队 | 快而稳 |
| 中载 | 70% | 偶尔短队 | 可接受 |
| 重载 | 90% | 队明显,P99 抬头 | 开始抖动 |
| 饱和 | 98%~100% | 队爆炸,延迟陡增 | 超时、雪崩 |
对从业者,容量规划留 20%~30% 余量不是浪费,是买延迟稳定性。推理服务要设并发上限、超时、限流、优先级,扩缩容多看队列等待时间和 P99,别只盯 GPU util。对普通人,客服、医院、收费站、电梯都一样:把资源排到 100%,看似高效,实际一有波动就全堵住。具体阈值以你的压测和监控为准。
