併發用戶數:是指現實系統中操做業務的用戶,在性能測試工具中,通常稱爲虛擬用戶數(Virutal User)。數據庫
併發用戶數和註冊用戶數、在線用戶數的概念不一樣,服務器
一、併發用戶數必定會對服務器產生壓力的,session
二、而在線用戶數只是 」掛」 在系統上,對服務器不產生壓力,併發
三、註冊用戶數通常指的是數據庫中存在的用戶數。工具
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和併發用戶數,以TPS爲主,併發用戶數爲輔來衡量系統的性能。若是必需要用併發用戶數來衡量的話,須要一個前提,那就是交易在多長時間內完成,由於在系統負載不高的狀況下,將思考時間(思考時間的值等於交易響應時間)加到腳本中,併發用戶數基本可 以增長一倍,所以用併發用戶數來衡量系統的性能沒太大的意義。網站
在性能測試時並不須要用上萬的用戶併發去進行測試,若是隻須要保證系統處理業務時間足夠快,幾百個用戶甚至幾十個用戶就可 以達到目的。據他了解,不少專家作過的性能測試項目基本都沒有超過5000用戶併發。所以對於大型系統、業務量很是高、硬件配置足夠多的狀況下,5000 用戶併發就足夠了;對於中小型系統,1000用戶併發就足夠了。設計
系統吞吐量幾個重要參數:TPS、併發數、響應時間日誌
TPS:每秒鐘事務數量
併發數: 系統同時處理的事務數
響應時間:通常取平均響應時間
TPS=併發用戶數 / (響應時間+Thinktime)
1.併發用戶如何計算
1、經典公式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、通用公式2:
對絕大多數場景,咱們用(用戶總量/統計時間)*影響因子(通常爲3)來進行估算併發量。
好比,以乘坐地鐵爲例子,天天乘坐人數爲5萬人次,天天早高峯是7到9點,晚高峯是6到7點,根據8/2原則,80%的乘客會在高峯期間乘坐地鐵,則每秒到達地鐵檢票口的人數爲50000*80%/(3*60*60)=3.7,約4人/S,考慮到安檢,入口關閉等因素,實際堆積在檢票口的人數確定比這個要大,假定每一個人須要3秒才能進站,那實際併發應爲4人/s*3s=12,固然影響因子能夠根據實際狀況增大!
3、根據PV計算公式:
好比一個網站,天天的PV大概1000w,根據2/8原則,咱們能夠認爲這1000w pv的80%是在一天的9個小時內完成的(人的精力有限),那麼TPS爲:
1000w*80%/(9*3600)=246.92個/s,取經驗因子3,則併發量應爲:
246.92*3=740
4、根據TPS估計:
公式爲 C = (Think time + 1)*TPS
5、根據系統用戶數計算:
併發用戶數 = 系統最大在線用戶數的8%到12%