正確估算並發用戶數和並發數峰值能讓你提前應對系統將要面對的一些壓力,做好系統升級,擴容等一些准備措施,從而從容應對,保持系統的穩定,保證服務質量,例如電商網站大促,節日高峰等。
並發用戶數如何估算?
1、經典公式
1)平均並發用戶數為 C = nL/T
2)並發用戶數峰值 C' = C + 3*根號C
C是平均並發用戶數,n是login session的數量,L是login session的平均長度,T是值考察的時間長度, C'是並發用戶數峰值
舉例1,假設系統A,該系統有3000個用戶,平均每天大概有400個用戶要訪問該系統(可以從系統日志從獲得),對於一個典型用戶來說,一天之內用戶從登陸到退出的平均時間為4小時,而在一天之內,用戶只有在8小時之內會使用該系統。那么,
平均並發用戶數為:C = 400*4/8 = 200
並發用戶數峰值為:C‘ = 200 + 3*根號200 = 243
二、通用公式
對絕大多數場景,我們用(用戶總量/統計時間)*影響因子(一般為3)來進行估算並發量。
以乘坐地鐵為例子,每天乘坐人數為5萬人次,每天早高峰是7到9點,晚高峰是6到7點,根據8/2原則,80%的乘客會在高峰期間乘坐地鐵,則每秒到達地鐵檢票口的人數為50000*80%/(3*60*60)=3.7,約4人/S,考慮到安檢,入口關閉等因素,實際堆積在檢票口的人數肯定比這個要大,假定每個人需要3秒才能進站,那實際並發應為4人/s*3s=12,當然影響因子可以根據實際情況增大!
三、根據系統用戶數計算
並發用戶數 = 系統最大在線用戶數的8%到12%
TPS峰值如何估算?
1、根據PV計算公式
比如一個網站,每天的PV大概1000w,根據2/8原則,我們可以認為這1000w pv的80%是在一天的9個小時內完成的(人的精力有限),那么TPS為:1000w*80%/(9*3600)=246.92個/s,取經驗因子3,則並發量應為:246.92*3=740
總結
QPS(TPS)=並發數/平均響應時間
一個系統吞吐量通常有QPS(TPS),並發數兩個因素決定,每套系統這個兩個值都有一個相對極限值,在應用場景訪問壓力下,只要某一項達到系統最高值,系統吞吐量就上不去了,如果壓力繼續增大,系統的吞吐量反而會下降,原因是系統超負荷工作,內存等其他消耗導致系統性能下降。