一、QPS(每秒查詢)
QPS(Queries Per Second):表示“每秒查詢率”,指一臺服務器每秒能夠相應的查詢次數,是對一個特定的查詢服務器在規定時間內所處理流量多少的衡量標準。
二、TPS(每秒事務)
TPS(Transaction Per Second):表示每秒的事務數,指軟件測試的測量單位。這其中一個事務是指一個客戶端向服務器發送請求然后服務器做出反應的過程。TPS的一個完整計時周期是客戶機在發送請求時開始計時,收到服務器的響應后結束計時,以此來統計相應時間內的完成事務的個數即TPS,即每秒完成的事務數量。
三、RT(響應時間)
RT(Response Time):表示響應時間,指執行一個請求從開始到最后收到響應數據花費的總體時間,即從客戶端發起請求到收到服務器響應結果的時間。因此RT直接代表了服務系統的快慢,是線上服務最重要的指標之一,直接關聯著用戶體驗。
四、并發數
并發數是指系統同時能處理的請求數量,直接反映了系統的負載能力
五、吞吐量
系統的吞吐量(承壓能力)與request對CPU的消耗、外部接口和IO讀寫等等有密切的關聯,單個request對CPU的消耗越高,IO速度越慢和對外部接口的依賴越多,就會導致系統吞吐率越低,反之則越高。
系統吞吐量幾個重要參數:QPS(TPS)、并發數、響應時間。
QPS(TPS):每秒鐘request/事務 數量
并發數: 系統同時處理的request/事務數
響應時間: 一般取平均響應時間
六、最佳線程數、QPS、RT
1、單線程QPS公式:QPS=1000ms/RT
對同一個系統而言,支持的線程數越多,QPS越高。假設一個RT是80ms,則可以很容易的計算出QPS,QPS = 1000/80 = 12.5
多線程場景,如果把服務端的線程數提升到2,那么整個系統的QPS則為 2*(1000/80) = 25, 可見QPS隨著線程的增加而線性增長,那QPS上不去就加線程唄,聽起來很有道理,公司也說的通,但是往往現實并非如此。
2、最佳線程數量
剛好消耗完服務器的瓶頸資源的臨界線程數,公式如下
最佳線程數量=((線程等待時間+線程cpu時間)/線程cpu時間)* cpu數量
特性:
在達到最佳線程數的時候,線程數量繼續遞增,則QPS不變,而響應時間變長,持續遞增線程數量,則QPS開始下降。
每個系統都有其最佳線程數量,但是不同狀態下,最佳線程數量是會變化的。
瓶頸資源可以是CPU,可以是內存,可以是鎖資源,IO資源:超過最佳線程數-導致資源的競爭,超過最佳線程數-響應時間遞增。