高併發
什麼是高併發? 高併發是互聯網分佈式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。
高併發中一些概念
1. PV(訪問量): 頁面訪問量,頁面刷新一次算一次。
2. UV(獨立訪客): 即Unique Visitor,一個客戶端(電腦,手機)爲一個訪客;
3. DAU(日活躍用戶數):登錄或使用了某個產品的用戶數,這與流量統計工具裏的訪客(UV)概念相似。
4. 峯值QPS:
原理:每天80%的訪問集中在20%的時間裏,這20%時間叫做峯值時間
公式:( 總PV數 * 80% ) / ( 每天秒數 * 20% ) = 峯值時間每秒請求數(QPS)
5. QPS/TPS(每秒查詢率):每秒能夠查詢次數(QPS/TPS= 併發數 / 平均響應時間)
併發數:併發數是指系統同時能處理的請求數量,這個也是反應了系統的負載能力。
吐吞量:吞吐量是指系統在單位時間內處理請求的數量
響應時間(RT):響應時間是指系統對請求作出響應的時間,一般取平均響應時間
1)例1:
1. 假設1秒鐘100個請求,處理每個請求需要花2秒,
2. 那麼 50(每秒可以處理50個請求,即QPS使50) = 100(每秒併發數) / 2 (每個請求的平均處理時間)
3. 這是一臺機器的QPS,如有每秒併發數爲1000,那麼就需要10臺這樣的機器才扛得住:
2)例2:
1. 每天200萬PV,那麼它的QPS = (2000000 * 0.8)/ (24*60*60*0.2)≈ 93
2. 假設按照上面那樣一臺機器的QPS是50,那麼抗住每天200萬PV的訪問量需要2臺這樣的機器
如何提高高併發
互聯網分佈式架構設計,提高系統併發能力的方式,方法論上主要有兩種:垂直擴展(Scale Up)與水平擴展(Scale Out)。
垂直拓展:提高單個服務器的處理能力 水平拓展:只需要增加服務器的數量