服務器並發量估算公式和計算方法

最近需要對再次對服務器進行壓力測試,這裡整一下最近學習到的估算方案和估算方式。以下估算方式沒有考慮類似於秒殺這種極端情況。

並發值估算

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。則可以計算出一個值:

平均並發用戶數C=125000*5/16*60=651
並發用戶數峰值C`=651+3*根號 651=726

上面即為經典公式計算出的並發用戶數,但看起來和實際情況可能有差異。

作為外賣APP大部分人都會在高峰期進行點餐,所以對於外賣APP這類應該單獨進行考慮。

我們采用2/8原則來估算並發用戶數,即80%的用戶數會在高峰期點餐,而高峰期設定為11-12,17-19點一共5個小時,在這種情況下估算並發用戶數:

平均並發用戶數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個小時內訪問服務器(高峰期),則可以推算並發設備數。

950000*0.8/(3*60*60)=70/s

因物聯網設備的不確定性較高,我們將影響因子設置為5

.70*5=350 即活躍設備數在每秒為350個。

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: