本文介紹並發使用者、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差距也會很大。
效能測試策略
效能測試應遵循標準化流程和有序策略。在負載測試中,傳統方式一般都是按照梯度施壓的方式逐步增加使用者數,避免未預估情況下突增使用者導致的高失敗率和長回應時間,確保效能符合使用者期望;阿里雲Performance Testing Service,採用TPS加設定起始和目標最大量級的方式,使壓測效率更高。
總結
綜上所述,可以得出以下結論:
系統的效能由TPS決定,跟並發使用者數沒有多大關係。
系統的最大TPS是一定的(在一個範圍內),但並發使用者數不一定,可以調整。
建議效能測試的時候,不要設定過長的考慮時間,以最壞的情況對伺服器施壓。