一文搞懂高并發(fā)性能指標:QPS、TPS、RT、吞吐量

點擊鏈接加入QQ群138269539(全國招聘信息、免費公開課、視頻應有盡有):https://jq.qq.com/?_wv=1027&k=5q0IklJ 更多內(nèi)容可以關(guān)注公眾號:測試幫日記

一、QPS,每秒查詢

QPS:Queries Per Second意思是“每秒查詢率”,是一臺服務(wù)器每秒能夠相應的查詢次數(shù),是對一個特定的查詢服務(wù)器在規(guī)定時間內(nèi)所處理流量多少的衡量標準。

互聯(lián)網(wǎng)中,作為域名系統(tǒng)服務(wù)器的機器的性能經(jīng)常用每秒查詢率來衡量。

二、TPS,每秒事務(wù)

TPS:是TransactionsPerSecond的縮寫,也就是事務(wù)數(shù)/秒。它是軟件測試結(jié)果的測量單位。一個事務(wù)是指一個客戶機向服務(wù)器發(fā)送請求然后服務(wù)器做出反應的過程。客戶機在發(fā)送請求時開始計時,收到服務(wù)器響應后結(jié)束計時,以此來計算使用的時間和完成的事務(wù)個數(shù)。

QPS vs TPS:QPS基本類似于TPS,但是不同的是,對于一個頁面的一次訪問,形成一個TPS;但一次頁面請求,可能產(chǎn)生多次對服務(wù)器的請求,服務(wù)器對這些請求,就可計入“QPS”之中。如,訪問一個頁面會請求服務(wù)器2次,一次訪問,產(chǎn)生一個“T”,產(chǎn)生2個“Q”。

三、RT,響應時間

響應時間:執(zhí)行一個請求從開始到最后收到響應數(shù)據(jù)所花費的總體時間,即從客戶端發(fā)起請求到收到服務(wù)器響應結(jié)果的時間。

響應時間RT(Response-time),是一個系統(tǒng)最重要的指標之一,它的數(shù)值大小直接反應了系統(tǒng)的快慢。

四、并發(fā)數(shù)

并發(fā)數(shù)是指系統(tǒng)同時能處理的請求數(shù)量,這個也是反應了系統(tǒng)的負載能力。

五、吞吐量

系統(tǒng)的吞吐量(承壓能力)與request對CPU的消耗、外部接口、IO等等緊密關(guān)聯(lián)。單個request 對CPU消耗越高,外部系統(tǒng)接口、IO速度越慢,系統(tǒng)吞吐能力越低,反之越高。

系統(tǒng)吞吐量幾個重要參數(shù):QPS(TPS)、并發(fā)數(shù)、響應時間。

QPS(TPS):(Query Per Second)每秒鐘request/事務(wù) 數(shù)量

并發(fā)數(shù): 系統(tǒng)同時處理的request/事務(wù)數(shù)

響應時間: 一般取平均響應時間

理解了上面三個要素的意義之后,就能推算出它們之間的關(guān)系:

QPS(TPS)= 并發(fā)數(shù)/平均響應時間

并發(fā)數(shù) = QPS*平均響應時間

六、實際舉例

我們通過一個實例來把上面幾個概念串起來理解。按二八定律來看,如果每天 80% 的訪問集中在 20% 的時間里,這 20% 時間就叫做峰值時間。

公式:( 總PV數(shù) * 80% ) / ( 每天秒數(shù) * 20% ) = 峰值時間每秒請求數(shù)(QPS)

機器:峰值時間每秒QPS / 單臺機器的QPS = 需要的機器

1、每天300w PV 的在單臺機器上,這臺機器需要多少Q(mào)PS??

( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)

2、如果一臺機器的QPS是58,需要幾臺機器來支持??

139 / 58 = 3

七、最佳線程數(shù)、QPS、RT

1、單線程QPS公式:QPS=1000ms/RT

對同一個系統(tǒng)而言,支持的線程數(shù)越多,QPS越高。假設(shè)一個RT是80ms,則可以很容易的計算出QPS,QPS = 1000/80 = 12.5

多線程場景,如果把服務(wù)端的線程數(shù)提升到2,那么整個系統(tǒng)的QPS則為 2*(1000/80) = 25, 可見QPS隨著線程的增加而線性增長,那QPS上不去就加線程唄,聽起來很有道理,公司也說的通,但是往往現(xiàn)實并非如此。

2、QPS和RT的真實關(guān)系

我們想象的QPS、RT關(guān)系如下,


單線程 or 純cpu多線程

實際的QPS、RT關(guān)系如下,


高IO線程

3、最佳線程數(shù)量

剛好消耗完服務(wù)器的瓶頸資源的臨界線程數(shù),公式如下

最佳線程數(shù)量=((線程等待時間+線程cpu時間)/線程cpu時間)* cpu數(shù)量

特性:

在達到最佳線程數(shù)的時候,線程數(shù)量繼續(xù)遞增,則QPS不變,而響應時間變長,持續(xù)遞增線程數(shù)量,則QPS開始下降。

每個系統(tǒng)都有其最佳線程數(shù)量,但是不同狀態(tài)下,最佳線程數(shù)量是會變化的。

瓶頸資源可以是CPU,可以是內(nèi)存,可以是鎖資源,IO資源:超過最佳線程數(shù)-導致資源的競爭,超過最佳線程數(shù)-響應時間遞增。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容