1025
魔獸
並發用戶和TPS關係__性能測試技術體係_性能測試體係_性能測試-阿裏雲
1. 背景
在做性能測試的時候,很多人都用並發用戶數來衡量係統的性能,覺得係統能支撐的並發用戶數越多,係統的性能就越好;對TPS不是非常理解,也根本不知道它們之間的關係,因此非常有必要進行解釋。
2. 術語定義
- 並發用戶數:簡稱VU ,指的是現實係統中操作業務的用戶,在性能測試工具中,一般稱為虛擬用戶數(Virutal User),注意並發用戶數跟注冊用戶數、在線用戶數有很大差別的,並發用戶數一定會對服務器產生壓力的,而在線用戶數隻是 ”掛” 在係統上,對服務器不產生壓力,注冊用戶數一般指的是數據庫中存在的用戶數。
- 處理能力: 簡稱TPS, 每秒事務數, 是衡量係統性能的一個非常重要的指標。
- 響應時間:簡稱RT,指的是業務從客戶端發起到客戶端接受的時間。
3. Vu和TPS換算
簡單例子:在術語中解釋了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
總的TPS=
4. 如何獲取Vu和TPS
並發用戶數(Vu)獲取
新係統:沒有曆史數據作參考,隻能通過業務部門進行評估。
舊係統:對於已經上線的係統,可以選取高峰時刻,在一定時間內使用係統的人數,這些人數認為屬於在線用戶數,並發用戶數取10%就可以了,例如在半個小時內,使用係統的用戶數為10000,那麼取10%作為並發用戶數基本就夠了。TPS獲取 新係統:沒有曆史數據作參考,隻能通過業務部門進行評估。
舊係統:對於已經上線的係統,可以選取高峰時刻,在5分鍾或10分鍾內,獲取係統每筆交易的業務量和總業務量,按照單位時間內完成的筆數計算出TPS,即業務筆數/單位時間(560或1060)。
5. 如何評價係統的性能
針對服務器端的性能,以TPS為主來衡量係統的性能,並發用戶數為輔來衡量係統的性能,如果必須要用並發用戶數來衡量的話,需要一個前提,那就是交易在多長時間內完成,因為在係統負載不高的情況下,將思考時間(思考時間的值等於交易響應時間)加到腳本中,並發用戶數基本可以增加一倍,因此用並發用戶數來衡量係統的性能沒太大的意義。
6. 相關案例
通過12306網站性能測試和某國有銀行性能測試案例,發現不需要用上萬的用戶並發去進行測試,隻要係統處理業務時間足夠快,幾百個用戶甚至幾十個用戶就可以達到目的。另外谘詢很多專家做過的性能測試項目,基本都沒有超過5000用戶並發。
因此對於大型係統、業務量非常高、硬件配置足夠多的情況下,5000用戶並發就足夠了;對於中小型係統,1000用戶並發就足夠了。
7. 性能測試策略
做性能測試需要一套標準化流程及測試策略,並發用戶數隻是指標考慮的一個,在做負載測試的時候,一般都是按照梯度施壓的方式去加用戶數,而不是在沒有預估的情況下,一次加幾萬個用戶,,交易失敗率非常高,響應時間非常長,已經超過了使用者忍受範圍內,這樣做沒有多大的意義,這就好比“有多少錢可以幹多少事”一樣,需要選擇相關的策略。
8. 總結
- 係統的性能由TPS決定,跟並發用戶數沒有多大關係。在同樣的TPS下,可以由不同的用戶數去壓(通過加思考時間設置)。
- 係統的最大TPS是一定的(在一個範圍內),但並發用戶數不一定,可以調整。
- 建議性能測試的時候,不要設置過長的思考時間,以最壞的情況下對服務器施壓。
- 一般情況下,大型係統(業務量大、機器多)做壓力測試,5000個用戶並發就夠了,中小型係統做壓力測試,1000個用戶並發就足夠了。
最後更新:2016-05-06 10:44:40
上一篇:
測試分析及調優__性能測試技術體係_性能測試體係_性能測試-阿裏雲
下一篇:
培訓課程大綱__性能測試視頻教程_性能測試-阿裏雲
做世界雲計算的“兩極”,阿裏雲如何跨過“企業關”
ECS__操作事件(Event)樣例_用戶指南_操作審計-阿裏雲
日誌埋點規範__數據規範_開發者指南_推薦引擎-阿裏雲
大數據計算服務__數加產品概覽_數加平台介紹-阿裏雲
修改源站信息__域名操作接口_API 手冊_CDN-阿裏雲
獲取主域名名稱__域名管理接口_API文檔_雲解析-阿裏雲
GetBucketcors__跨域資源共享_API 參考_對象存儲 OSS-阿裏雲
消費消息__隊列使用幫助_控製台使用幫助_消息服務-阿裏雲
接入指南__Open API_消息隊列 MQ-阿裏雲
已經授權子用戶管理某個負載均衡器的權限,但是在均衡器實例中添加/移除ECS服務器以及設置權重時提示沒有權限___負載均衡(SLB)授權問題_授權常見問題_訪問控製-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲