【性能測試】二、TPS、QPS、RT和吞吐量這些都是什么?


題目所示的其實都是性能需求指標

通常,性能指標可以從兩個層面去定義:業務指標技術指標。而且,這兩個之間是存在映射關系的。

舉例,如果一個系統要支持 1000 萬人在線,可能你能測試出來的結果是系統能支持 1 萬 TPS。但是,如果問你,1000 萬人在線會不會有問題?這估計就很難回答了。

所以,業務指標和技術指標的關系是:

  • 所有的技術指標都是在有業務場景的前提下制定的
  • 技術指標和業務指標之間也要有詳細的換算過程

有了關系之后,就可以回答“1000 萬人在線會不會有問題?”。比如,我可以回答“有問題”,因為1萬 TPS 的時候,接口的響應時間大幅超過預期。

一、什么是 TPS

TPS,這是一項關鍵指標,用來描述每秒事務數,可以反應出一個系統的處理能力。

但是,TPS 在不同的行業、不同的業務中定義的粒度都是不同的。所以不管你在哪里用 TPS,一定要有一個前提,就是所有相關的人都要知道你的 T 是如何定義的

如圖所示,一個業務流程圖:

  • 如果要單獨測試接口 1、2、3,那么 T 就是接口級的。
  • 如果我們要從用戶的角度來下一個訂單,那 1、2、3 應該在一個 T 中,這就是業務級的了。

當然了,還要具體看系統是怎么設計的。通常來說,積分服務是異步的,而庫存不是異步,那么這個業務級就可以看做是 1、2 兩個接口。但是,在做這樣的業務級壓力時,3 接口也是必須要監控分析的。

所以,性能中 TPS 中 T 的定義取決於場景的目標和 T 的作用

具體用示例來說明下:

接口級腳本

——事務 start(接口 1)
接口 1 腳本
——事務 end(接口 1)

——事務 start(接口 2)
接口 2 腳本
——事務 end(接口 2)

——事務 start(接口 3)
接口 3 腳本
——事務 end(接口 3)

業務級接口層腳本(就是用接口拼接出一個完整的業務流):

——事務 start(業務 A)
接口 1 腳本 - 接口 2(同步調用)
接口 1 腳本 - 接口 3(異步調用)
——事務 end(業務 A)

結合上述示例,再次理解下:你要創建什么級別的事務,完全取決於測試的目的是什么,這句話。

另外,在測試過程中,通常是先接口級、后業務級的順序,容易定位問題。

二、什么是 QPS

QPS 一開始是用來描述 MySQL 中 SQL 每秒執行數 Query Per Second,所有的 SQL 都被稱為 Query。后來,由於一些文章的轉來轉去,QPS 被慢慢地移到了壓力工具中,用來描述吞吐量。

如果描述的是前端的每秒查詢數,那就不包括插入、更新、刪除操作了。顯然這樣的指標用來描述系統整體的性能是不夠全面的,所以不建議用 QPS 來描述系統整體的性能。

三、什么是 RT

RT 就是響應時間(Response Time)。

圖示中 T1 和 T2 分別代表請求時間和返回的時間,所以 T1 - T2 = RT,即響應時間。

不過這個響應時間是包括了后面一連串的鏈路,如果要定位響應時間慢在哪里,就要知道各環節的耗時,除了在所有服務的進出口上都做記錄,然后計算結果來實現,目前也有成熟的工具。

它很直觀地顯示了,在一個請求鏈路上,每個節點消耗的時間和請求的持續時間。

四、吞吐量

通常是不需要用吞吐量這個概念的。因為它在不同人的腦子里會存在一些誤解。

比如說,有些人說吞吐量就是在說TPS。有些人說吞吐量是說的每秒字節數。所以不建議用這個概念來承載性能指標,有TPS就夠了

五、總結

關於性能測試的種種,簡化完后,需要記住的關鍵字是:

  • 性能測試概念中:性能指標、性能模型、性能場景、性能監控、性能實施、性能報告。
  • 性能場景中:基准場景、容量場景、穩定性場景、異常場景。
  • 性能指標中:TPS、RT。

本文參考:
高樓老師 性能測試實戰30講


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM