QPS PV RT(響應時間)之間的關係

2022-06-23 15:51:10 字數 1372 閱讀 4378

qps、pv 、rt(響應時間)之間的關係

qps:單個程序每秒請求伺服器的成功次數

qps = req/sec = 請求數/秒

qps統計方式 [一般使用 http_load 進行統計] 

qps = 總請求數 / ( 程序總數 * 請求時間 )

單臺伺服器每天pv計算:

公式1:每天總pv = qps * 3600 * 6

公式2:每天總pv = qps * 3600 * 8

伺服器數量 = 每天總pv / 單臺伺服器每天總pv

峰值qps和機器計算公式:

原理:每天80%的訪問集中在20%的時間裡,這20%時間叫做峰值時間 

峰值時間每秒請求數(qps):( 總pv數 * 80% ) / ( 每天秒數 * 20% )

峰值機器數量:峰值時間qps / 單臺機器的qps

例子:問:每天300w pv 的在單臺機器上,這臺機器需要多少qps?

答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (qps)

問:如果一臺機器的qps是58,需要幾臺機器來支援? 答:139 / 58 = 3

效能壓測的情況下,起初隨著使用者數的增加,qps會上升,當到了一定的閥值之後,使用者數量增加qps並不會增加,或者增加不明顯,同時請求的響應時間卻大幅增加。這個閥值我們認為是最佳執行緒數。

為什麼要找最佳執行緒數

過多的執行緒只會造成,更多的記憶體開銷,更多的cpu開銷,但是對提升qps確毫無幫助

找到最佳執行緒數後通過簡單的設定,可以讓web系統更加穩定,得到最高,最穩定的qps輸出

最佳執行緒數的獲取:

通過使用者慢慢遞增來進行效能壓測,觀察qps,響應時間

根據公式計算:伺服器端最佳執行緒數量=((執行緒等待時間+執行緒cpu時間)/執行緒cpu時間) * cpu數量

單使用者壓測,檢視cpu的消耗,然後直接乘以百分比,再進行壓測,一般這個值的附近應該就是最佳執行緒數量。

影響最佳執行緒數的主要因素:

ioio開銷較多的應用其cpu執行緒等待時間會比較長,所以執行緒數量可以開的多一些,相反則執行緒數量要少一些,其實有兩種極端,純io的應用,比如proxy,則執行緒數量可以開到非常大(實在太大了則需要考慮執行緒切換的開銷),這種應用基本上後端(比如這個proxy是**搜尋的)的qps能有多少,proxy就有多少。

cpu對於耗cpu的計算,這種情況一般來講只能開到cpu個數的執行緒數量。但是並不是說這種應用的qps就不高,往往這種應用的qps可以很高,因為耗cpu計算的應用,往往處理單次請求的時間會很短。

qps和執行緒數的關係

在最佳執行緒數量之前,qps和執行緒是互相遞增的關係,執行緒數量到了最佳執行緒之後,qps持平,不在上升,甚至略有下降,同時響應時間持續上升。

同一個系統而言,最佳執行緒數越多,qps越高