本文分享自天翼雲開發者社區《利特爾法則(little' law)在軟件開發領域的應用》.作者:王****淋

一、引例

先考慮一個小學數學問題:

- a) 某小學每屆1000名學生, 6年制,請估算此刻該學校內學生總人數。

很明顯,6個年級每個都是1000,學生人數為 1000*6=6000。

這就是利特爾法則的直觀體現。看上去好無聊,這還用搞個法則來麼?事情沒有這麼簡單,讓我們換個問題:

- b) 某小學每屆1000名學生, 6年制,請估算該學校內【每年的】學生總人數。

問的不是 “此刻” 的人數,而是每時每刻的人數。還是6000人嗎?可能有少數人會猶豫一下,但很快想明白了:明年有1000人畢業離開,但同時招收了1000新學生,因此總人數一直是6000。

由此引例,讓我們看下利特爾法則的公式:

二、 利特爾法則

L = λW

系統中平均物體的數量,換句話説,其實就是一個物體在系統中逗留的那段時間裏總共又進來了多少物體, 因此就等於物體進入系統的速率 * 物體的平均逗留時間。

結合引例, λ 就是學校每年招生的人數,W 就是每個學生為了畢業在學校裏等待的時間(在學校這個

系統裏逗留的時間),L 就是目前/每年學校裏學生的總人數。

三、 利特爾法則也被廣泛應用於各個領域:

- 商科:一生產企業, 已知每秒鐘有n個原材料進入流水線(每個原材料對應一個產成品),原材料需要t個單位時間通過流水線成為產成品,問流水線上有多少半成品?

- 計算機科學:

服務器會接受請求並在處理過請求後回覆,若系統A每秒收到的請求(QPS)是 λ個,處理每個請求需要 W 秒,那系統中正在處理的請求就是 λ*W 個;如果每個請求處理需要的內存是N,那此服務器需要安裝的內存應該是不少於

進一步,每個請求需要的內存不變,請求處理時間變長,在QPS不變的情況下,系統所需的內存也要大幅增長。

四 總結

利特爾法則簡單易懂,且具有普適性