本文介紹并發用戶、RPS、TPS的基本概念以及三者之間的關系。
術語定義
并發用戶:在性能測試工具中,一般稱為虛擬用戶(Virtual User,簡稱VU),指的是現實系統中操作業務的用戶。
說明并發用戶與注冊用戶、在線用戶不同。注冊用戶一般指的是數據庫中存在的用戶。在線用戶只是“掛”在系統上,對服務器不產生壓力。但并發用戶一定會對服務器產生壓力。
TPS:Transaction Per Second,每秒事務數,是衡量系統性能的一個非常重要的指標。
說明系統每秒處理事務數越多證明您的機器性能越好。
RPS:Request Per Second,每秒請求數。RPS模式適合用于容量規劃和作為限流管控的參考依據。
RT:Response Time,響應時間,指的是業務從客戶端發起到客戶端接收的時間。
在性能測試中,通常有兩種施壓模式:并發模式和RPS模式。傳統方式是使用并發用戶數來衡量系統的性能(站在客戶端視角)。此方法一般適用于一些網頁站點的壓測(例如H5頁面);而RPS模式主要是為了方便直接衡量系統的吞吐能力TPS而設計的(站在服務端視角),按照被壓測端需要達到TPS等量設置相應的RPS,應用場景主要是一些動態的接口API,例如登錄、提交訂單等等。
VU和TPS換算
公式:TPS=VU/RT,(RT單位:秒)。
舉例說明:假如某業務響應時間(RT)是0.001s,那么1個虛擬用戶(VU)在1s內能完成1000個事務,即TPS=1/0.001=1000。如果某業務響應時間(RT)是1s,那么1個虛擬用戶(VU)在1s內只能完成1個事務,要想達到1000 TPS,就需要1000個虛擬用戶(VU)同時發起請求。
如何獲取VU和TPS
VU獲取方式:
已有系統:可選取高峰時刻,在一定時間內使用系統的人數,這些人數可認為是在線用戶數,并發用戶數可以取10%,例如在半個小時內,使用系統的用戶數為10萬,那么取10%(即1萬)作為并發用戶數基本就夠了。
新系統:沒有歷史數據作參考,建議通過業務部門進行評估。
TPS獲取方式:
已有系統:可選取高峰時刻,在一定時間內(如3分鐘~10分鐘),獲取系統總業務量,計算單位時間(秒)內完成的筆數,乘以2~5倍作為峰值的TPS,例如峰值3分鐘內處理訂單18萬筆,平均TPS是1000,峰值TPS可以是2000~5000。
新系統:沒有歷史數據作參考,建議通過業務部門進行評估。
如何評價系統的性能
針對服務器端的性能,以TPS為主來衡量系統的性能,并發用戶數為輔來衡量系統的性能,如果必須要用并發用戶數來衡量的話,需要一個前提,那就是交易在多長時間內完成,因為在系統負載不高的情況下,將思考時間(思考時間的值等于交易響應時間)加到業務會話中,并發用戶數基本可以增加一倍,因此用并發用戶數來衡量系統的性能沒太大的意義。同樣的,如果系統間的吞吐能力差別很大,那么同樣的并發下TPS差距也會很大。
性能測試策略
性能測試應遵循標準化流程和有序策略。在負載測試中,傳統方式一般都是按照梯度施壓的方式逐步增加用戶數,避免未預估情況下突增用戶導致的高失敗率和長響應時間,確保性能符合用戶期望;阿里云性能測試PTS,采用TPS加設置起始和目標最大量級的方式,使壓測效率更高。
總結
綜上所述,可以得出以下結論:
系統的性能由TPS決定,跟并發用戶數沒有多大關系。
系統的最大TPS是一定的(在一個范圍內),但并發用戶數不一定,可以調整。
建議性能測試的時候,不要設置過長的思考時間,以最壞的情況對服務器施壓。