天天看點

性能測試需求之3大關鍵名額(TPS、并發使用者數、響應時間)的關系

系統吞吐量幾個重要參數:

  • TPS:每秒鐘事務數量
  • 并發數: 系統同時處理的事務數
  • 響應時間:一般取平均響應時間

并發使用者數:是指現實系統中操作業務的使用者,在性能測試工具中,一般稱為虛拟使用者數(Virutal User)。

并發使用者數和注冊使用者數、線上使用者數的概念不同,

1、并發使用者數一定會對伺服器産生壓力的,

2、而線上使用者數隻是 ”挂” 在系統上,對伺服器不産生壓力,

3、注冊使用者數一般指的是資料庫中存在的使用者數。

TPS:Transaction Per Second, 每秒事務數, 是衡量系統性能的一個非常重要的名額。

TPS就是每秒事務數,但是事務是基于虛拟使用者數的,

假如1個虛拟使用者在1秒内完成1筆事務,那麼TPS明顯就是1;

如果 某筆業務響應時間是1ms,那麼1個使用者在1秒内能完成1000筆事務,TPS就是1000了;

如果某筆業務響應時間是1s,那麼1個使用者在1秒内隻能完 成1筆事務,要想達到1000TPS,至少需要1000個使用者;

是以可以說1個使用者可以産生1000TPS,1000個使用者也可以産生1000TPS,無非是看響應時間快慢。

TPS = 并發使用者數/(響應時間 + Thinktime)

并發使用者如何計算

一、經典公式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

舉例2, 某公司為其170000名員工設計了一個薪酬系統,員工可進入該系統查詢自己的薪酬資訊,但并不是每個人都會用這個系統,假設隻有50%的人會定期用改系統,這些人裡面有70%是在每個月的最後一周使用一次該系統,且平均使用系統時間為5分鐘。

則一個月最後一周的平均并發使用者數為(朝九晚五):

n = 170000*0.5*0.7/5 = 11900

C= 11900*5/60/8 = 124

吞吐量計算為:F = Vu * R / T 機關為個/s

F為事務吞吐量,Vu為虛拟使用者數個數,R為每個虛拟使用者發出的請求數,T為處理這些請求所花費的時間

二、通用公式2:

對絕大多數場景,我們用(使用者總量/統計時間)*影響因子(一般為3)來進行估算并發量。

比如,以乘坐地鐵為例子,每天乘坐人數為5萬人次,每天早高峰是7到9點,晚高峰是6到7點,根據8/2原則,80%的乘客會在高峰期間乘坐地鐵,則每秒到達地鐵檢票口的人數為50000*80%/(3*60*60)=3.7,約4人/S,考慮到安檢,入口關閉等因素,實際堆積在檢票口的人數肯定比這個要大,假定每個人需要3秒才能進站,那實際并發應為4人/s*3s=12,當然影響因子可以根據實際情況增大!

三、根據PV計算并發數公式:

比如一個網站,每天的PV大概1000w,根據2/8原則,我們可以認為這1000w pv的80%是在一天的9個小時内完成的(人的精力有限),那麼TPS為:

1000w*80%/(9*3600)=246.92個/s,取經驗因子3,則并發量應為:

246.92*3=740

四、根據TPS估計并發數:

公式為 C = (Think time + 1)*TPS

五、根據系統使用者數計算:

并發使用者數 = 系統最大線上使用者數的8%到12% 或 8%到15%