什麼是分散式系統的利特爾定律? - nurkiewicz
利特爾定律(Little's law)是一個令人震驚的方程式,它非常簡單,但它可以為你的分散式系統的能力帶來驚人的洞察力。
舉例:首先,假設我們去一個雜貨店。想象一下,有一個店員,平均在四分鐘內處理一個顧客。很明顯,他可以提供服務:60分鐘除以4--每小時15個顧客。這是可持續的到達率。如果為一個顧客服務需要三分鐘而不是四分鐘,那麼數學就很簡單了。六十分鐘除以三。這使得每小時有二十名顧客。正如你所看到的,店員處理顧客的速度越快,他或她在給定的時間單位內能處理的顧客就越多。
但如果我們增加第二個店員呢?我們假設他或她有同等的吞吐量,以服務一個顧客的平均時間來衡量。我們系統的吞吐量突然增加了一倍。這還是在假設店員之間是獨立的。他們之間不需要同步。同時,也沒有共享的資源需要他們去等待。每個店員都有自己的登記簿。因此,不再是每小時20個顧客,而是每小時40個顧客。你可能可以猜到,增加第三個店員也會增加商店的吞吐量。應該很容易算出,總體吞吐量等於一個店員的吞吐量乘以店員的數量。在上述假設下。
信不信由你,這就是利特爾/李特定律的全部光輝。利特爾定律本質上是說,我們每小時能服務的顧客數量與辦事員的數量成正比。但它也與平均處理時間成反比。為一個顧客服務的時間越長,我們得到的吞吐量就越少。工作人員的數量除以平均交易時間。這就是了!
讓我們回到分散式系統和IT。在我們的行業中,我們可以透過用CPU/伺服器/執行緒/程式取代辦事員來使用李特定律。我們不用衡量完成結賬的時間,而是用交易或請求-響應時間。在所有這些情況下,真正令人驚訝的是,這些是唯一的依賴關係。例如這一定律不受響應時間分佈的影響(如常數與正常數與指數數)。它也不受客戶到達率分佈的影響。在一個穩定的系統中,即使我們只知道平均數,它也是有效的。我們所需要的是每秒平均請求數、平均響應時間和吞吐量。知道了其中兩個,我們就可以計算出第三個。
讓我們舉一個具體的例子。想象一下,處理CPU密集型請求的Node.js伺服器。Node.js是著名的單執行緒,所以如果一個請求需要你的CPU 100毫秒,我們每秒最多可以有效地處理十個請求。然而,如果我們在負載平衡器後面部署四個Node.js伺服器,我們的理論吞吐量就會增長到每秒40個請求。另一方面,讓我們來看看老式的Tomcat伺服器,預設配置了100個工作執行緒。如果一個交易是IO繫結的,平均需要100毫秒,那麼這個Tomcat例項每秒可以提供1000個請求。注意我說的是IO-bound。如果這個Tomcat例項上的事務是受CPU約束的,我們就使用可用的CPU核心數,而不是執行緒數來計算。
利特爾定律的神奇之處在於很多原因。首先,它允許你在對系統內部知之甚少的情況下估算出系統的理論最大吞吐量。你只需要知道你的瓶頸是什麼(伺服器、CPU、資料庫連線),或者反過來說,你需要多少資源來維持給定的流量,在你的SLA中列出。如果你考慮到它是多麼的簡單,那就更令人吃驚了。無論傳入請求的分佈如何,無論你是否有隨機的GC暫停,等等,它都能發揮作用。你只需在平均數上下功夫。
相關文章
- 什麼是分散式系統分散式
- 什麼是特威曼定律?
- 分散式 - 分散式系統的特點分散式
- 什麼是分散式系統!以及分散式系統架構的優缺點!分散式架構
- 分散式系統1:什麼是分散式系統——簡要的介紹與定義分散式
- 什麼是分散式系統中的冪等性分散式
- 認知謬論:什麼是特威曼定律?
- 大家都在說的分散式系統到底是什麼?分散式
- 什麼是Linux系統?Linux系統有什麼特點?Linux
- 什麼是分散式計算系統?—Vecloud微雲分散式Cloud
- 什麼是分散式?分散式
- 到底什麼是分散式系統?你需要了解這些分散式
- 什麼是分散式鎖?分散式
- 分散式系統中常見技術解決的問題是什麼?分散式
- 在Linux中,什麼是Linux作業系統,它的特點是什麼?Linux作業系統
- 什麼是Little定律(littles law)
- 【分散式鎖的演化】什麼是鎖?分散式
- 什麼是分散式金融DeFi? - YahooFinance分散式NaN
- 什麼是HDFS 分散式儲存分散式
- 短影片直播系統為什麼需要分散式部署,淺談分散式部署分散式
- 系統呼叫與庫函式是什麼,區別是什麼函式
- 什麼是量子計算的內文定律?
- Jtti:什麼是分散式伺服器?特點和適用場景分析Jtti分散式伺服器
- 過去2 - 3年發表的重要的分散式系統研究論文是什麼?分散式
- 你男朋友是高可用麼? | 談分散式系統的概念分散式
- 特權賬號管理系統是什麼?是堡壘機嗎?
- 什麼是Tornado?它的特點是什麼?
- 什麼是Linux作業系統?有哪些主要特點?Linux作業系統
- 企業微信scrm管理系統是什麼意思?有什麼特點?
- 分散式系統2:分散式系統中的時鐘分散式
- 2021-2-20:請你說說分散式系統 BASE 理論是什麼?分散式
- 分散式與叢集的區別是什麼?分散式
- 認知謬論:什麼是吉布森定律?
- 什麼是響應式網頁?有什麼特點呢?網頁
- 什麼是OA系統?OA系統的協同門戶平臺有哪些特點?
- 軟體工程:波斯特爾定律,輸入輸出的平衡之道軟體工程
- 28_分散式文件系統_階段性總結以及什麼是distributed document store分散式
- 嵌入式系統開發的基本流程是什麼