最近需要對再次對服務器進行壓力測試,這里整一下最近學習到的估算方案和估算方式。以下估算方式沒有考慮類似于秒殺這種極端情況。
并發值估算
1.1 經典公式
一般來說,利用以下經驗公式進行估算系統的平均并發用戶數和峰值數據
- 1)平均并發用戶數為 C = nL/T
- 2)并發用戶數峰值 C‘ = C + 3*根號C
C是平均并發用戶數,n是login session的數量,L是login session的平均長度,T是值考察的時間長度
C'是并發用戶數峰值
如用外賣點餐APP套入這個公式計計算下并發用戶數100W用戶下并發用戶數大致范圍:
假設外賣APP有100W個用戶,而日活用戶假設占12.5%即12.5W個日活用戶,而每個日活用戶打開APP到點餐平均時間大概為5分鐘,而假設早上8點到晚上12點都會有用戶使用該APP。則可以計算出一個值:
1
2
|
平均并發用戶數C=125000*5/16*60=651 并發用戶數峰值C`=651+3*根號 651=726 |
上面即為經典公式計算出的并發用戶數,但看起來和實際情況可能有差異。
作為外賣APP大部分人都會在高峰期進行點餐,所以對于外賣APP這類應該單獨進行考慮。
我們采用2/8原則來估算并發用戶數,即80%的用戶數會在高峰期點餐,而高峰期設定為11-12,17-19點一共5個小時,在這種情況下估算并發用戶數:
1
2
|
平均并發用戶數C=125000*5*0.8/5*60=1666 并發用戶數峰值C`=1666+3*根號 1666=1788 |
1.2通用公式
對絕大多數場景,可以用(用戶總量/統計時間)*影響因子(一般為3)來進行估算并發量。
比如,以乘坐地鐵為例子,每天乘坐人數為5萬人次,每天早高峰是7到9點,晚高峰是6到7點,根據8/2原則,80%的乘客會在高峰期間乘坐地鐵,則每秒到達地鐵檢票口的人數為5000080%/(36060)=3.7,約4人/S,考慮到安檢,入口關閉等因素,實際堆積在檢票口的人數肯定比這個要大,假定每個人需要3秒才能進站,那實際并發應為4人/s3s=12,當然影響因子可以根據實際情況增大!
所以物聯網設備其實是可以考慮為通用設備。
在比較極端的情況下考慮,100萬個設備其中95%均為日活設備即95W,且假設其中80%的設備都會在3個小時內訪問服務器(高峰期),則可以推算并發設備數。
1
|
950000*0.8/(3*60*60)=70/s |
因物聯網設備的不確定性較高,我們將影響因子設置為5
1
|
.70*5=350 即活躍設備數在每秒為350個。 |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/m0_37263637/article/details/88649056