QPS,TPS,吞吐量,響應時間詳解及關系


並發數

並發數是指系統同時能處理的請求數量,這個也是反應了系統的負載能力

吞吐量
吞吐量是指單位時間內系統能處理的請求數量,體現系統處理請求的能力,這是目前最常用的性能測試指標

響應時間RT(Response-time)
響應時間是一個系統最重要的指標之一,它的數值大小直接反應了系統的快慢。響應時間是指執行一個請求從開始到最后收到響應數據所花費的總體時間,即從客戶端發起請求到收到服務器響應結果的時間

QPS(Queries Per Second)
是每秒查詢率,是一台服務器每秒能夠相應的查詢次數,即1秒內完成的請求數量,是對一個特定的查詢服務器在規定時間內所處理流量多少的衡量標准

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

Qps基本類似於Tps,但是不同的是,對於一個頁面的一次訪問,形成一個Tps;但一次頁面請求,可能產生多次對服務器的請求,服務器對這些請求,就可計入“Qps”之中
例:訪問一個頁面會請求服務器3次,一次放,產生一個“T”,產生3個“Q”

之間的計算關系:
QPS = 並發量 / 平均響應時間
並發量 = QPS * 平均響應時間


舉個例子來理解下上述幾個概念。
假設每天80%的訪問集中在20%的時間里,這20%時間叫做峰值時間
公式:( 總PV數 * 80% ) / ( 每天秒數 * 20% ) = 峰值時間每秒請求數(QPS)
機器:峰值時間每秒QPS / 單台機器的QPS = 需要的機器

每天300w PV 的在單台機器上,這台機器需要多少QPS?
( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)

如果一台機器的QPS是58,需要幾台機器來支持?
139 / 58 = 3

單線程QPS公式,QPS=1000ms/RT,對同一個系統而言,支持的線程數越多,QPS越高。假設一個RT是80ms,則可以很容易的計算出QPS,QPS = 1000/80 = 12.5
多線程場景,如果把服務端的線程數提升到2,那么整個系統的QPS則為 2*(1000/80) = 25, 可見QPS隨着線程的增加而線性增長,那QPS上不去就加線程唄,聽起來很有道理,公司也說的通,但是往往現實並非如此。

最佳線程數量
剛好消耗完服務器的瓶頸資源的臨界線程數,公式如下
最佳線程數量=((線程等待時間+線程cpu時間)/線程cpu時間)* cpu數量
特性:
1.在達到最佳線程數的時候,線程數量繼續遞增,則QPS不變,而響應時間變長,持續遞增線程數量,則QPS開始下降
2.每個系統都有其最佳線程數量,但是不同狀態下,最佳線程數量是會變化的
3.瓶頸資源可以是CPU,可以是內存,可以是鎖資源,IO資源

超過最佳線程數-導致資源的競爭

超過最佳線程數-響應時間遞增


QPS和RT的關系?
1.對於大部分web系統,響應時間一般由CPU執行時間,線程等待時間(IO等待,sleep, wait)時間組成。QPS和RT成反比關系


2.在實際的測試環境中,QPS和RT並不是非常直接的反比關系

 

 

驗證案例

 

部分內容來源於 https://www.docin.com/p-799863220.html


免責聲明!

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



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