Little 定律

稳态系统中并发数等于到达率乘以平均停留时间(L=λW);它是容量换算的基础工具:已知 QPS 与响应时间即可估并发,反之亦然。

Little 定律是什么

Little 定律指出:稳态系统中平均并发数等于到达率乘以平均停留时间,即 L 等于 λ 乘 W。它是容量换算的基础工具——已知每秒请求数与平均响应时间,就能估算同时在处理中的请求数量;反过来,也能从线程池容量推算可支撑的吞吐上限。

怎么用在架构分析上

把系统看成一层层稳态队列,每层的并发需求都由该层的到达率与停留时间决定。如果某层的并发需求超过线程池或连接池容量,请求就会排队,停留时间被推高,上层观察到的并发随之进一步上升。这正是过载时延迟恶化的机制:不是计算变慢,而是等待在累积。

换算

换算
L = λ × W
# L 并发数,λ 到达率(每秒),W 平均停留时间(秒)

例:λ=1000 QPS,W=50ms  ->  L ≈ 50 并发
反推:连接池 100,W=50ms   ->  理论上限约 2000 QPS
# 超过上限后多出的请求排队,W 被推高,吞吐不再增长

换算示例

场景到达率平均耗时并发
网关入口2000 QPS20ms40
订单服务800 QPS120ms96
报表导出20 QPS3s60
数据库写路径500 QPS60ms30

适用前提

稳态假设输入与输出速率基本一致,队列未持续增长
单位一致响应时间与到达率的时间单位必须统一
峰值差异突发流量下瞬时并发可远高于平均值
边界不适用于排队尚未建立的瞬时状态

最容易误用的地方

常见误用是把每秒请求数直接当成并发数来配线程池,忽略了响应时间的量级差异:同样是每秒一千次调用,响应时间从十毫秒涨到一百毫秒,所需并发就从十涨到一百。另一个误用是拿改造后的响应时间套用旧的容量结论,反压参数、缓存命中率或下游变慢都会让停留时间变化,容量结论必须跟着重算。

定律描述稳态;突发流量下瞬时并发可远高于平均值,容量设计要看峰值而非均值,或者用排队模型估算峰值时刻的堆积量。

易错点

  • 用平均 QPS 估算并发,突发时线程池与连接池被打满
  • 忽略排队等待时间,低估实际并发需求,扩容永远慢一步
  • 把并发数当作线程数直接配置,未考虑下游连接池的真实上限
  • 在系统未达稳态时套用公式,得到的并发数没有意义

数据来源与参考

  • 《性能之巅(第 2 版)》(Gregg)
  • Little 定理(J.D.C. Little, 1961)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌