TPS (transaction per second)代表每秒執行的事務數量,可基於測試周期內完成的事務數量計算得出。例如,用戶每分鍾執行6個事務,TPS為6 / 60s = 0.10 TPS。同時我們會知道事務的響應時間(或節拍),以此例,60秒完成6個事務也同時代表每個事務的響應時間或節拍為10秒。
利特爾法則 (Little’s law):
該法則由麻省理工大學斯隆商學院(MIT Sloan School of Management)的教授John Little﹐於1961年所提出與證明。它是一個有關提前期與在制品關系的簡單數學公式,這一法則為精益生產的改善方向指明了道路。
利特爾法則的公式描述為:Lead Time(產出時間)= 存貨數量×生產節拍 或 TH(生產效率)= WIP(存貨數量)/ CT(周期時間)
P.S: 稍后我們會列出負載模型中利特爾法則的應用公式。
我們通過2個示例來看一下此法則是如何在生產環境中發生作用的。
例1:假定我們所開發的並發服務器,並發的訪問速率是:1000客戶/分鍾,每個客戶在該服務器上將花費平均0.5分鍾,根據little's law規則,在任何時刻,服務器將承擔1000×0.5=500個客戶量的業務處理。假定過了一段時間,由於客戶群的增大,並發的訪問速率提升為2000客戶/分鍾。在這樣的情況下,我們該如何改進我們系統的性能? 根據little's law規則,有兩種方案:
第一:提高服務器並發處理的業務量,即提高到2000×0.5=1000。 或者
第二:減少服務器平均處理客戶請求的時間,即減少到:2000×0.25=500。
例2:假設你排隊參觀某個風景點,該風景點固定的容納人數是:60人。每個人在該風景點停留的平均時間是:3分鍾。假設在你的前面還排有20個人,問:你估計你大概等多少時間才能進入該風景點。
答案:1小時(3×20=60),和該景點固定的容納人數無關。
為了通過利特爾法則研究負載模型,我們就先要了解兩個因子:響應時間(Response time)和節拍(Pacing)。實際上節拍會超越響應時間對TPS的影響。
示例1:節拍0秒,思考時間0秒
用戶執行5個事務並且每個事務的響應時間是10秒,需要花費50秒完成5個事務,即5/50=0.1 TPS (這里TPS是由響應時間控制)。
示例2:速率15秒,思考時間0秒
用戶執行5個事務且每個事務的響應時間是10秒,但實際由於節拍大於響應時間,所以它優於響應時間控制了事務發生的頻率。完成5個事務需要5*15 = 75秒,產生5/75=0.06667 TPS。
在第二個示例中,平均響應時間小於節拍15秒,需要75秒完成5個迭代,產生了0.06667 TPS。
上面兩個例子中我們假設思考時間為0秒。如果思考時間為2秒,總時間仍是75秒完成5個迭代,產生0.06667 TPS。
節拍為0秒,則 用戶數 = TPS * ( 響應時間 + 思考時間 )
節拍不為0秒且大於響應時間與思考時間的和,則 用戶數 = TPS * (速率)
事實上TPS是事務在w.r.t時間的速率,所以也被稱為吞吐量(throughput)。
所以利特爾法則在負載模型中解釋為:系統內平均用戶數 = 平均響應時間 * 吞吐量
N = ( R + Z ) * X
N, 用戶數
R, 平均響應時間(也可能是速率)
Z, 思考時間
X, 吞吐量(如TPS)
如:N (用戶數)=1500, R (平均響應時間)=10, Z (思考時間)=0,則X (吞吐量)=1500/10=150 TPS