從事Java Web相關項目開發,使用者、測評機關以及相關的上司經常詢問一些平台性能方面的相關名額,例如:QPS、TPS、吞吐量等等。下面對每個性能名額進行總結,順便加深了解。
PV,網頁浏覽量
Page View,網頁浏覽量。網頁被使用者調用浏覽的次數。網頁每次打開或重新整理一次頁面,記錄一次。使用者對同一頁面的多次通路,通路量累計。
QPS,每秒查詢
QPS:Query Per Second,每秒查詢率,是一台伺服器每秒能夠響應的查詢次數,是對一個特定的查詢伺服器在規定時間内所處理流量多少的衡量标準。
TPS,每秒事務
TPS,Transaction Per Second,事務數/秒,是軟體測試結果的測量機關。一個事務是指一個用戶端向伺服器發送請求,然後伺服器做出反應的過程。用戶端在發送請求時開始計時,收到伺服器響應後結束計時,以此來計算使用的時間和完成的事務個數。
Tps即每秒處理事務數,包括了
1)使用者請求伺服器
2)伺服器自己的内部處理
3)伺服器傳回給使用者
這三個過程,每秒能夠完成N個這三個過程,Tps也就是N;
Qps基本類似于Tps,但是不同的是,對于一個頁面的一次通路,形成一個Tps;但一次頁面請求,可能産生多次對伺服器的請求,伺服器對這些請求,就可計入“Qps”之中。
例如:通路一個頁面會請求伺服器3次,一次放,産生一個“T”,産生3個“Q”。
RT,響應時間
Response Time,響應時間,執行一個請求從開始到最後收到響應資料所花費的總體時間,即從用戶端發起請求到收到伺服器響應結果的時間。
響應時間RT,是一個系統最重要的名額之一,它的數值大小直接反映了系統的快慢。
并發數
并發數是指系統同時能處理的請求數量,這個也是反映了系統的負載能力。
吞吐量
系統的吞吐量與request對CPU的消耗、外部接口、IO等等緊密關聯。單個request對CPU消耗越高,外部系統接口、IO速度越慢,系統吞吐能力越低,反之越高。
系統吞吐量幾個重要參數:QPS(TPS)、并發數、響應時間。
1、QPS(TPS):每秒request/事務 數量
2、并發數:系統同時處理的request/事務數
3、響應時間:一般取平均響應時間
可推算出他們之間的關系如下:
- QPS(TPS)= 并發數 / 平均響應時間
- 并發數 = QPS * 平均響應時間
示例
通過執行個體将幾個概念串聯起來。按照二八定律來看,如果每天80%的通路集中在20%的時間裡,這20%時間就叫做峰值時間。
- 公式:(總PV數 * 80%) / (每天秒數 * 20%) = 峰值時間每秒請求數(QPS)
- 機器:峰值時間每秒QPS / 單台機器的QPS = 需要的機器數
1、每天300w PV的在單台機器上,這台機器需要多少QPS?
(3000000 * 0.8)/ (86400 * 0.2) = 139 (QPS)
2、如果一台機器的QPS是58,需要幾台機器來支援?
139 / 58 = 3