1、TPS:
Transactions Per Second,意思是每秒事務(wù)數(shù)。一個(gè)事務(wù)是指客戶端向服務(wù)器發(fā)送請(qǐng)求然后服務(wù)器做出反應(yīng)的過程,具體的事務(wù)定義,可以是一個(gè)接口、多個(gè)接口、一個(gè)業(yè)務(wù)流程等等。以單接口定義為事務(wù)舉例,每個(gè)事務(wù)包括了如下3個(gè)過程:
- (1)向服務(wù)器發(fā)請(qǐng)求
- (2)服務(wù)器自己的內(nèi)部處理(包含應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器等)
- (3)服務(wù)器返回結(jié)果給客戶端
如果每秒能夠完成 N 次以上3個(gè)過程,TPS 就是 N。
TPS 是軟件測(cè)試結(jié)果的測(cè)量單位。我們?cè)谶M(jìn)行服務(wù)性能壓測(cè)時(shí),接口層面最常關(guān)注的是最大 TPS 以及接口響應(yīng)時(shí)間,個(gè)人理解 TPS 可以指一組邏輯相關(guān)的請(qǐng)求,而服務(wù)整體處理能力取決于處理能力最低模塊的TPS值。
2、QPS:
Queries Per Second,意思是每秒查詢率。指一臺(tái)服務(wù)器每秒能夠響應(yīng)的查詢次數(shù),用于衡量特定的查詢服務(wù)器在規(guī)定時(shí)間內(nèi)所處理流量多少,主要針對(duì)專門用于查詢的服務(wù)器的性能指標(biāo),比如dns,它不包含復(fù)雜的業(yè)務(wù)邏輯處理,比如數(shù)據(jù)庫中的每秒執(zhí)行查詢sql的次數(shù)。QPS 只是一個(gè)簡單查詢的統(tǒng)計(jì)顯然,不能描述增刪改等操作,顯然它不夠全面,所以不建議用 QPS 來描述系統(tǒng)整體的性能;
QPS 基本類似于 TPS,但是不同的是,對(duì)于一個(gè)事務(wù)訪問,會(huì)形成一個(gè) “ T ”;但一次 " T " 中,可能產(chǎn)生多次對(duì)服務(wù)器的請(qǐng)求,服務(wù)器對(duì)這些請(qǐng)求,就可計(jì)入 QPS 之中。
3、區(qū)別:
(1)如果是對(duì)一個(gè)查詢接口壓測(cè),且這個(gè)接口內(nèi)部不會(huì)再去請(qǐng)求其它接口,那么 TPS = QPS,否則,TPS ≠ QPS
(2)如果是容量場景,假設(shè) N 個(gè)接口都是查詢接口,且這個(gè)接口內(nèi)部不會(huì)再去請(qǐng)求其它接口,QPS = N * TPS