一、引例 (Example)
先考虑一个小学数学问题:
- a) 某小学每届1000名学生, 6年制,请估算此刻该学校内学生总人数。
很明显,6个年级每个都是1000,学生人数为 1000*6=6000。
这就是利特尔法则的直观体现。看上去好无聊,这还用搞个法则来么?事情没有这么简单,让我们换个问题:
- b) 某小学每届1000名学生, 6年制,请估算该学校内【每年的】学生总人数。
问的不是 “此刻” 的人数,而是每时每刻的人数。还是6000人吗?可能有少数人会犹豫一下,但很快想明白了:明年有1000人毕业离开,但同时招收了1000新学生,因此总人数一直是6000。
由此引例,让我们看下利特尔法则的公式:
二、 利特尔法则 (Little's Law)
L = λW
系统中平均物体的数量,换句话说,其实就是一个物体在系统中逗留的那段时间里总共又进来了多少物体, 因此就等于物体进入系统的速率 * 物体的平均逗留时间。
结合引例, λ 就是学校每年招生的人数,W 就是每个学生为了毕业在学校里等待的时间(在学校这个
系统里逗留的时间),L 就是目前/每年学校里学生的总人数。
三、 利特尔法则也被广泛应用于各个领域:
- 商科:一生产企业, 已知每秒钟有n个原材料进入流水线(每个原材料对应一个产成品),原材料需要t个单位时间通过流水线成为产成品,问流水线上有多少半成品?
- 计算机科学:
服务器会接受请求并在处理过请求后回复,若系统A每秒收到的请求(QPS)是 λ个,处理每个请求需要 W 秒,那系统中正在处理的请求就是 λ*W 个;如果每个请求处理需要的内存是N,那此服务器需要安装的内存应该是不少于 [λ*W*N]
进一步,每个请求需要的内存不变,请求处理时间变长,在QPS不变的情况下,系统所需的内存也要大幅增长。
四 总结
利特尔法则简单易懂,且具有普适性