預估步驟:
注冊用戶數-日均UV量-每日的PV量-每天的並發量;
峰值預估:平常量的2~3倍;
根據並發量(並發,事務數),存儲容量計算系統容量。
客戶需求:3~5年用戶數達到1000萬注冊用戶;
500萬*0.05
2000萬,活躍用戶5%,即
每秒並發數預估:
每天的UV為200萬(二八原則);
每日每天點擊瀏覽30次;
PV量:200*30=6000萬;
集中訪問量:24*0.2=4.8小時會有6000萬*0.8=4800萬(二八原則);
每分並發量:4.8*60=288分鍾,每分鍾訪問4800/288=16.7萬(約等於);
每秒並發量:16.7萬/60=2780(約等於);
假設:高峰期為平常值的三倍,則每秒的並發數可以達到8340次;
1毫秒=1.3次訪問。
服務器預估(以Tomcat服務器舉例):
按一台Web服務器,支持每秒300個並發計算。平常需要10台服務器(約等於);[Tomcat默認配置是150]
高峰期:需要30台服務器;
容量預估:70/90原則
系統CPU一般維持在70%左右的水平,高峰期達到90%的水平,是不浪費資源,並比較穩定的。內存,IO類似。
以上預估僅供參考,因為服務器配置,業務邏輯復雜度等都有影響。在此CPU、硬盤、網絡等不再進行評估。
峰值QPS:原理:每天80%的訪問集中在20%的時間里,這20%時間叫做峰值時間
公式:( 總PV數 * 80% ) / ( 每天秒數 * 20% ) = 峰值時間每秒請求數(QPS)
PV:訪問量即Page View, 即頁面瀏覽量或點擊量,用戶每次刷新即被計算一次
單台服務器每天PV計算
公式1:每天總PV = QPS * 3600 * 6
公式2:每天總PV = QPS * 3600 * 8
UV:獨立訪客即Unique Visitor,訪問您網站的一台電腦客戶端為一個訪客。00:00-24:00內相同的客戶端只被計算一次服務器數量:
機器:峰值時間每秒QPS / 單台機器的QPS = 需要的機器
機器:ceil( 每天總PV / 單台服務器每天總PV )
1)訪問頁面的帶寬
訪問官網首頁:5.6MB
訪問TPS首頁:8.7MB
訪問沃好首頁:4.8MB
2)計算PV
日常PV:tps(5.97w)+walhao(0.9w)=6.87w
峰值PV:tps(13.16w)+walhao(0.21w)=13.37w
日常網站帶寬=(日均pv/統計時間(s))*平均頁面大小(KB)*8=nMbps
日常PV下的日常網站帶寬=(6.87w/(24*60*60=86400))*(5.6+8.7+4.8=19.1)*8=121.49Mbps
峰值PV下的日常網站帶寬=(13.37w/(24*60*60=86400))*(5.6+8.7+4.8=19.1)*8=236.45Mbps
峰值網站帶寬=(日均pv/統計時間(s))*平均頁面大小(KB)*8*5=mMbps
日常PV下的峰值網站帶寬=(6.87w/(24*60*60=86400))*(5.6+8.7+4.8=19.1)*8*5=607.45Mbps
峰值PV下的峰值網站帶寬=(13.37w/(24*60*60=86400))*(5.6+8.7+4.8=19.1)*8*5=1182.25Mbps
並發連接數 = PV / 統計時間 * 頁面衍生連接次數 * http響應時間 * 因數 / web服務器數量;
10wPV並發連接數 c=((10*10000PV/86400秒)*50個派生連接數*1秒內響應*5倍峰值)/1台Web服務器=289
13.7wPV並發連接數 c=((13.7*10000)/86400)*(414+82=496)*2.5*5=9831
PV量:200*30=6000萬;
集中訪問量:24*0.2=4.8小時會有6000萬*0.8=4800萬(二八原則);
每分並發量:4.8*60=288分鍾,每分鍾訪問4800/288=167萬(約等於);
每秒並發量:16.7萬/60=2780(約等於);
假設:高峰期為平常值的三倍,則每秒的並發數可以達到8340次;
線下單機基線TPS =線上日均交易量/86400/機器數*160%*F
1天:86400秒
160%:50%的時間完成80%的業務,即80%/50%=160%
后端核心服務響應時間不超過100ms
后端一般服務響應時間不超過100ms
前端頁面響應時間不超過3s
1)響應時間
一般依據1秒 3秒 5秒原則,判斷一個請求的處理是否快慢,同時也需要根據系統的實際功能來調整這個判斷規則。
2)活躍用戶數及並發用戶數
注冊用戶數:通過注冊功能注冊到系統的用戶。
在線用戶數(活躍用戶數):用戶登陸系統后,處於在線狀態,但並未都在對系統進行功能操作。
並發用戶數:用戶登陸系統后,處於在線狀態,有都在對系統進行功能操作。
a)行業視頻APP
APP1:
注冊用戶數:a萬
日訪問ip數:a/7=18.21萬人
日活PV量:b/7=40.36萬次
活躍用戶占比:IP數%注冊用戶數 18.21/a=0.5%。
b)APP1:1
注冊用戶數:a萬
日訪問ip數:3.5萬人
日活PV量:0.72萬次
活躍用戶占比:IP數%用戶數 3.5/200=1.75%。
c)APP3:
注冊用戶數a萬,每天活躍用戶數:2%,即活躍用戶數:0.02a萬人。
日活用戶2萬,每年增長30%,共增長3年。
公式1:
用戶在線時長:用戶從登陸到退出的時間,單位為小時。
用戶使用系統的時間:用戶在16個小時(8~23)內都會使用系統。
用戶使用系統的時間16個小時,平均每30分鍾操作1次,16個小時共操作32次。
平均並發用戶數c=在線用戶數 n* 用戶在線時長 L/用戶使用系統的時間 T
c=2w*2/16=2500
峰值並發用戶數c=平均並發用戶數 c+開3次根(平均並發用戶數 c)
c'=c+開3次根(c)=2500+14=2514
40萬*10*60/16*60*60=4166.6tps
公式2:
平均並發用戶數 c=在線用戶數 n*20%
c=2w*20%=4000
峰值並發用戶數 c=平均並發用戶數 c*調整因子 r(2~3)
c'=c*r=2000*3=6000
公式3:
平均並發用戶數 vu=吞吐量 tps*T(思考時間3秒 thinkTime +進行業務操作時間 runTime)
3)pv及tps,及pv與tps的換算關系
未來3年的日pv量:每天PV2萬,則3年按30%的增長,3年后日PV:2萬*(1+30%)²≈3.38萬
公式1:
按8020原則計算:80%的業務操作在20%的時間內完成。
tps=(每小時PV*80%)/(3600秒*20%)
1000萬*0.8/10*60*0.2=
1千萬*0.8/3600*16*0.2=1千萬/900*16
1000萬*0.8/86400*0.2
800萬/17280=460tps*4=1850tps
100線程 200MB 50tps
9月 訪問量: 237676 uv: 27644 9
8月 訪問量: 15925 uv: 572 27.8
7月 訪問量: 14939 uv: 602 24.8
20萬*21*0.8/86400*0.2=194.4tps 800tps
公式2:
tps=vu*R/T
吞吐量 F=虛擬用戶數 vu* 請求的個數 R/性能測試時間 T
用戶發出額請求個數 R=性能測試時間 T/用戶思考時間 Ts
4)測試環境與生產環境差異比例計算
因生產環境與測試環境存在差異,因此測試環境中測試的性能要求,按比例換算成生成環境上時,如何符合要求,則在生產環境也基本可以達到要求。
測試環境與生產環境比例:
n=(生產web服務器數/測試web服務器數),(生產app服務器數/測試app服務器數))*(生產服務器內存/測試服務器內存)
n=(16/9)*(200/64)=5.5
平均TPS=(總PV*80%)/(24*60*60*(T/24))/服務器數量
平均TPS=(1.6*總PV)/(24*60*60)/服務器數量
峰值TPS=(1.92*總PV)/(24*60*60)/服務器數量
系統業務處理能力
TPS=並發數(vu)*行為習慣:每人請求數(pv)/執行時間(t)(思考時間(tt)+響應時間(rt))