在做效能測試的時候,很多人都用併發使用者數來衡量系統的效能,覺得系統能支撐的併發使用者數越多,系統的效能就越好;對tps不是非常理解,也根本不知道它們之間的關係,因此非常有必要進行解釋。
ø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,無非是看響應時間快慢。
ø複雜公式:
試想一下複雜場景,多個指令碼,每個指令碼裡面定義了多個事務(例如乙個指令碼裡面有100個請求,我們把這100個連續請求叫做action,只有第10個請求,第20個請求分別定義了事務10和事務20)具體公式如下:
符號代表意義:
vui表示的是第i個指令碼使用的併發使用者數
rtj表示的是第i個指令碼第j個事務花費的時間,此時間會影響整個action時間
rti表示的是第i個指令碼一次完成所有操作的時間,即action時間
n 表示的是第n個指令碼
m 表示的是每個指令碼中m個事務
那麼第j個事務的tps = vui/rti
ø併發使用者數(vu)獲取
øtps獲取
舊系統:對於已經上線的系統,可以選取高峰時刻,在5分鐘或10分鐘內,獲取系統每筆交易的業務量和總業務量,按照單位時間內完成的筆數計算出tps,即業務筆數/單位時間(5*60或10*60)
針對伺服器端的效能,以tps為主來衡量系統的效能,併發使用者數為輔來衡量系統的效能,如果必須要用併發使用者數來衡量的話,需要乙個前提,那就是交易在多長時間內完成,因為在系統負載不高的情況下,將思考時間(思考時間的值等於交易響應時間)加到指令碼中,併發使用者數基本可以增加一倍,因此用併發使用者數來衡量系統的效能沒太大的意義。
通過大量效能測試我們發現不需要用上萬的使用者併發去進行測試,只要系統處理業務時間足夠快,幾百個使用者甚至幾十個使用者就可以達到目的。另外諮詢很多專家做過的效能測試專案,基本都沒有超過5000使用者併發。
因此對於大型系統、業務量非常高、硬體配置足夠多的情況下,5000使用者併發就足夠了;對於中小型系統,1000使用者併發就足夠了。
做效能測試需要一套標準化流程及測試策略,併發使用者數只是指標考慮的乙個,在做負載測試的時候,一般都是按照梯度施壓的方式去加使用者數,而不是在沒有預估的情況下,一次加幾萬個使用者,,交易失敗率非常高,響應時間非常長,已經超過了使用者忍受範圍內,這樣做沒有多大的意義,這就好比「有多少錢可以幹多少事」一樣,需要選擇相關的策略。
從下圖對比項可以看出,pts比loadrunner(lr)更能讓客戶接受。
方向
對比項
loadrunner
pts
備註
基礎設施
被測系統軟硬體環境需要額外購買?
需要不需要
基礎設施軟硬體由阿里雲提供,只需要購買服務
壓力機環境需要額外購買?
需要不需要
基礎設施軟硬體由pts提供,只需要購買服務
費用費用
非常貴便宜,按需收費
商業化工具license非常貴
功能功能
強大較強大
lr很多功能基本上用不到,沒必要大馬拉小車
易用性操作、學習等
困難容易
lr不易上手
穩定性系統穩定性
較穩定非常穩定
lr壓測過程中經常出現莫名其妙錯誤
場景模擬
場景模擬
條件較真實
非常真實
pts分布在全國各地的分布式集群可以真實模擬出現實場景,而lr不太容易模擬,即使可以的話,控制機和壓力機通訊經常掉線
ø 系統的效能由tps決定,跟併發使用者數沒有多大關係。在同樣的tps下,可以由不同的使用者數去壓(通過加思考時間設定)。
ø 系統的最大tps是一定的(在乙個範圍內),但併發使用者數不一定,可以調整。
ø 建議效能測試的時候,不要設定過長的思考時間,以最壞的情況下對伺服器施壓。
ø 一般情況下,大型系統(業務量大、機器多)做壓力測試,5000個使用者併發就夠了,中小型系統做壓力測試,1000個使用者併發就足夠了。
併發使用者數與TPS之間的關係
在做效能測試的時候,很多人都用併發使用者數來衡量系統的效能,覺得系統能支撐的併發使用者數越多,系統的效能就越好 對 tps不是非常理解,也根本不知道它們之間的關係,因此非常有必要進行解釋。併發使用者數 指的是現實系統中操作業務的使用者,在效能測試工具中,一般稱為虛擬使用者數 virutal user...
併發使用者數與 TPS 之間的關係
在做效能測試的時候,很多人都用併發使用者數來衡量系統的效能,覺得系統能支撐的併發使用者數越多,系統的效能就越好 對tps不是非常理解,也根本不知道它們之間的關係,因此非常有必要進行解釋。tps transaction per second,每秒事務數,是衡量系統效能的乙個非常重要的指標,簡單例子 在...
併發使用者數與TPS之間的關係
在做效能測試的時候,很多人都用併發使用者數來衡量系統的效能,覺得系統能支撐的併發使用者數越多,系統的效能就越好 對 tps不是非常理解,也根本不知道它們之間的關係,因此非常有必要進行解釋。併發使用者數 指的是現實系統中操作業務的使用者,在效能測試工具中,一般稱為虛擬使用者數 virutal user...