首页 › 运营与质量 › 利特尔法则
运营与质量 · 排队与流动

利特尔法则

系统平稳时,平均停留时间等于平均在办量除以完成速度。

Little's Law◷ 约 3 分钟▤ 2 个真实故事换成 AI 也一样在知识地图里看它和谁相连 →

1950 年代后期,克利夫兰凯斯理工学院的一位年轻教授,在一堂讲排队的课结束时提了一句:他们学过的每个模型里,都有同一个公式反复冒出来。看起来非常普遍。

下课后,一个叫锡德·赫斯的学生过来问:「要证明它普遍成立,有多难?」

「应该不太难吧。」这位教授约翰·利特尔说。

五十年后写到这一幕,利特尔补了一句:「有名的遗言。」

当时赫斯接着说:「那你就该去证!」利特尔趁着一家人在楠塔基特岛过夏天的时候做这件事,他写道,「海滩就是我们的保姆」。1961 年,证明发表了。然后他认定这类数学不适合自己,用他的话说,「从排队论退休了」。经过详见案例。

三个数

公式是 L = λW。系统里平均有多少件东西(L),等于它们进来的速度(λ)乘以每件平均待多久(W)。

利特尔和合著者史蒂夫·格雷夫斯举过一个超市的例子:早上 7 点开门,晚上 11 点关门。假设每小时进来 120 个顾客,平均每人逛 25 分钟,那么店里平均就有 50 个人。

让人意外的,也是利特尔证明了的,是这条法则的要求有多么少。顾客怎么来、每人逛多久、开几个收银台、谁先结账,它都不管。利特尔 2011 年说明,只要看的这段时间开头和结尾店里都是空的,它就严格成立;一个一直在运转的系统,只要状态平稳,它对长期平均值成立。

倒过来用

管事的人通常想知道第三个数:这件事要多久?倒过来就是 W = L / λ。运营管理教科书写成:周期时间等于在制品除以产出。

设想一家小会计事务所,整个报税季平均手上有 60 份报税单在办,每周办完 15 份左右。平均算下来,每份从收进来到办完送出,要在所里待四个星期。答应某个客户一周搞定,可以把他插到前面,但别人就得多等。除非少接几份,或者每周多办完几份,否则平均数纹丝不动。

所以积压越堆越高,危害才那么大。2004 年,微软 XIT 组积压着 80 多个改动需求,每月只做完六七个,一个需求通常要等至少五个月。他们的办法,是给进入开发的活设上限,这就是在制品限制讲的事。

一面照妖镜

利特尔法则也能用来检验数字。密歇根大学的比尔·洛夫乔伊用它给一家医院的观察病房定规模,他告诉利特尔:「我经常拿到加起来对不上的数据表。利特尔法则就是一道现实检验。」一个病区报上来的平均在院人数、收治速度、平均住院天数,三个数必须对得上。

他也拿它来做规划。观察病人平均待 1.14 天,所以只要估出病人来的速度,就能算出病房里平均有多少人。再除以一个目标占用率,比如 90%,就得到该设多少张床的初步估计。

这条法则改变不了任何东西。它「不负责改变这些量」,利特尔写道。它也说不出满负荷附近会发生什么。这一点,利特尔借用的是基础的排队论:在急诊科,病人来的速度越接近医护处理得了的速度,平均在科的病人数和停留时间就会「先慢慢涨,然后猛涨」。所以给急诊科设计排班系统的马克·哈里斯给的经验法则是:在最低配置之上多排 10% 到 20% 的人。

排队的智能体

AI 的活,也按这道算术走。Anthropic 的 API 按每分钟请求数设上限。假设你的智能体每次调用平均要 30 秒,你稳定地每分钟发 50 次,那么长期平均下来,同时在跑的调用大约 25 个,短时的突发可能更高。想让长期平均保持 100 个在途、每个仍要 30 秒,就得每分钟发 200 次。它的批量接口干脆直接给队列设了上限:同一时间排在处理队列里的请求,最多只能有那么多。

不过,最卡多数人的,是排到自己面前的那条队。要是一周又一周,你的待审堆里平均躺着二十个智能体做完的任务,你每天审五个左右,那么每个从进堆到审完,平均要四天。智能体再快也没用。待审的那一摞不变小、或者你审得不更快,平均等待就一天也短不了。

先看几件事

玩一玩

出处

  1. John D. C. Little, Little's Law as Viewed on Its 50th Anniversary, Operations Research 59(3), 2011
  2. David J. Anderson and Dragos Dumitriu, From Worst to Best in 9 Months: Implementing a Drum-Buffer-Rope Solution in Microsoft's IT Department, TOCICO World Conference, November 2005 (archived)
  3. Anthropic, Claude API documentation, Rate limits