系统设计 并发用户数与吞吐量
在做系統(tǒng)設(shè)計時,架構(gòu)師希望建立一套高性能的系統(tǒng),而吞吐量(TPS)則作為衡量系統(tǒng)性能的重要指標(biāo)。在做性能測試的時候,測試人員需要了解系統(tǒng)并發(fā)用戶數(shù)、系統(tǒng)吞吐量、以及響應(yīng)時間等,下面就按照這幾者之間的關(guān)系簡單整理如下。
1、響應(yīng)時間:對請求作出響應(yīng)所需要的時間
網(wǎng)絡(luò)傳輸時間:N1 + N2 + N3 + N4
應(yīng)用服務(wù)器處理時間:A1 + A3
數(shù)據(jù)庫服務(wù)器處理時間:A2
則響應(yīng)時間 = N1 + N2 + N3 + N4 + A1 + A3 + A2
2、并發(fā)用戶數(shù)的計算公式
系統(tǒng)用戶數(shù):系統(tǒng)額定的用戶數(shù)量,如一個OA系統(tǒng),可能使用該系統(tǒng)的用戶總數(shù)是3000個,那么這個數(shù)量,就是系統(tǒng)用戶數(shù)。
同時在線用戶數(shù):在一定的時間范圍內(nèi),最大的同時在線用戶數(shù)量。
同時在線用戶數(shù) = 每秒請求數(shù)RPS(吞吐量TPS) + 并發(fā)連接數(shù) + 平均用戶思考時間
平均并發(fā)用戶數(shù)的計算:C = n * L / T
其中C是平均的并發(fā)用戶數(shù),n是平均每天訪問用戶數(shù)(login session),L是一天內(nèi)用戶從登錄到退出的平均時間(login session的平均時間),T是考察時間長度(一天內(nèi)多長時間有用戶使用系統(tǒng))
并發(fā)用戶數(shù)峰值計算:C1 = C + 3 * sqr(C)
其中C1是并發(fā)用戶峰值,C是平均并發(fā)用戶數(shù),sqr(C)代表C的平方根。
示例:
假設(shè)有一個OA系統(tǒng),該系統(tǒng)有3000個用戶,平均每天大約有400個用戶要訪問該系統(tǒng),對一個典型用戶來說,一天之內(nèi)用戶從登錄到退出該系統(tǒng)的平均時間為4個小時,在一天的時間內(nèi),用戶只在8小時內(nèi)使用該系統(tǒng)。
則根據(jù)公式1和公式2,可以得到:
C = 400 * 4 / 8 = 200
C1 = 200 + 3 * sqr(200) = 242
3、吞吐量的計算公式
吞吐量:指單位時間內(nèi)系統(tǒng)處理用戶的請求數(shù)
從業(yè)務(wù)角度看,吞吐量可以用:請求數(shù)/秒、頁面數(shù)/秒、人數(shù)/天或處理業(yè)務(wù)數(shù)/小時等單位來衡量
從網(wǎng)絡(luò)角度看,吞吐量可以用:字節(jié)/秒來衡量
一個系統(tǒng)的吞度量(承壓能力)與request對CPU的消耗、外部接口、IO等等緊密關(guān)聯(lián)。單個reqeust 對CPU消耗越高,外部系統(tǒng)接口、IO影響速度越慢,系統(tǒng)吞吐能力越低,反之越高。
系統(tǒng)吞吐量幾個重要參數(shù):QPS(TPS)、并發(fā)數(shù)、響應(yīng)時間。
QPS(TPS):每秒鐘request/事務(wù) 數(shù)量
并發(fā)數(shù): 系統(tǒng)同時處理的request/事務(wù)數(shù)
響應(yīng)時間: 一般取平均響應(yīng)時間
理解了上面三個要素的意義之后,就能推算出它們之間的關(guān)系:
QPS(TPS)= 并發(fā)數(shù) / 平均響應(yīng)時間,或者
并發(fā)數(shù) = QPS * 平均響應(yīng)時間
示例:
一個典型的上班簽到系統(tǒng),早上8點上班,7點半到8點的30分鐘的時間里用戶會登錄簽到系統(tǒng)進行簽到。公司員工為1000人,平均每個員上登錄簽到系統(tǒng)的時長為5分鐘。可以用下面的方法計算。
QPS = 1000/(30*60) 事務(wù)/秒
平均響應(yīng)時間為 = 5*60 秒
并發(fā)數(shù)= QPS*平均響應(yīng)時間 = 1000/(30*60) *(5*60) = 166.7
Vu和TPS換算舉例說明
TPS是每秒事務(wù)數(shù),但是事務(wù)是要靠虛擬用戶run出來的,假如1個虛擬用戶在1秒內(nèi)完成1筆事務(wù),那么TPS明顯就是1;如果某筆業(yè)務(wù)響應(yīng)時間是1ms,那么1個用戶在1秒內(nèi)能完成1000筆事務(wù),TPS就是1000了;如果某筆業(yè)務(wù)響應(yīng)時間是1s,那么1個用戶在1秒內(nèi)只能完成1筆事務(wù),要想達(dá)到1000的TPS,至少需要1000個用戶;因此可以說1個用戶可以產(chǎn)生1000TPS,1000個用戶也可以產(chǎn)生1000TPS,主要是看響應(yīng)時間快慢。
4、如何獲取Vu和TPS
并發(fā)用戶數(shù)(Vu)獲取
新系統(tǒng):沒有歷史數(shù)據(jù)作參考,只能通過業(yè)務(wù)部門進行評估。
舊系統(tǒng):對于已經(jīng)上線的系統(tǒng),可以選取高峰時刻,在一定時間內(nèi)使用系統(tǒng)的人數(shù),這些人數(shù)認(rèn)為屬于在線用戶數(shù),并發(fā)用戶數(shù)取10%就可以了,例如在半個小時內(nèi),使用系統(tǒng)的用戶數(shù)為10000,那么取10%作為并發(fā)用戶數(shù)基本就夠了。
吞吐量(TPS)獲取
新系統(tǒng):沒有歷史數(shù)據(jù)作參考,只能通過業(yè)務(wù)部門進行評估。
舊系統(tǒng):對于已經(jīng)上線的系統(tǒng),可以選取高峰時刻,在5分鐘或10分鐘內(nèi),獲取系統(tǒng)每筆交易的業(yè)務(wù)量和總業(yè)務(wù)量,按照單位時間內(nèi)完成的筆數(shù)計算出TPS,即業(yè)務(wù)筆數(shù)/單位時間(5*60或10*60)
因此對于大型系統(tǒng)、業(yè)務(wù)量非常高、硬件配置足夠多的情況下,5000用戶并發(fā)就足夠了;對于中小型系統(tǒng),1000用戶并發(fā)就足夠了。
5、TPS與硬件、網(wǎng)絡(luò)配置
基準(zhǔn)參數(shù)
平均響應(yīng)時間1S
TPS峰值242
頁面平均大小20KB
每頁平均包含20張圖片,每張圖片平均大小50KB
PV估算
平均一天8個小時工作時間都按峰值估算,TPS * 8 * 60 * 60 = 6969600
數(shù)據(jù)庫估算
假設(shè)每個頁面平均執(zhí)行3個SQL,每個SQL平均耗時100毫秒,數(shù)據(jù)庫需要的并發(fā)數(shù)為3 * 242 / 0.1S = 73
帶寬估算
應(yīng)用服務(wù)器帶寬,頁面平均大小20KB,平均響應(yīng)時間1S,去除數(shù)據(jù)庫的交互時間(1000ms - 3 * 100ms)后為700ms,平均每個requst帶寬是28.57KB/S,最大帶寬242 * 28.57 / 1024 = 6.75MB/S
圖片服務(wù)器帶寬估算類似應(yīng)用服務(wù)器
CPU估算、內(nèi)存估算
對于每天1千萬PV(并發(fā)100用戶)網(wǎng)站的解決方案:
處理器:8核 內(nèi)存:16G 帶寬:50Mbps
數(shù)據(jù)庫內(nèi)存:16G
總結(jié)
以上是生活随笔為你收集整理的系统设计 并发用户数与吞吐量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 快速亮暗屏_Androi
- 下一篇: 中车研制出复合材料“超级铜”:一年预计将