一文搞清楚,QPS、TPS、并發(fā)用戶數(shù)、吞吐量
一文辨明QPS、TPS、PV、UV、DAU、MAU、并發(fā)用戶數(shù)、吞吐量
1、QPS
QPS?Queries Per Second
?是每秒查詢率 ,是一臺服務器 每秒能夠相應的查詢次數(shù),是對一個特定的查詢服務器在規(guī)定時間內 所處理流量多少的衡量標準, 即每秒的響應請求數(shù),也即是最大吞吐能力。
2、TPS
TPS?Transactions Per Second
?也就是事務數(shù)/秒。一個事務是指一個客戶機向服務器發(fā)送請求然后服務器做出反應的過程。客戶機在發(fā)送請求時開始計時,收到服務器響應后結束計時,以此來計算使用的時間和完成的事務個數(shù),
3、QPS和TPS區(qū)別
個人理解如下:
1、Tps即每秒處理事務數(shù),包括了
-
用戶請求服務器 -
服務器自己的內部處理 -
服務器返回給用戶
這三個過程,每秒能夠完成N個這三個過程,Tps也就是N;
2、Qps基本類似于Tps,但是不同的是,對于一個頁面的一次訪問,形成一個Tps;但一次頁面請求,可能產生多次對服務器的請求,服務器對這些請求,就可計入“Qps”之中。
例子:
4、并發(fā)數(shù)
并發(fā)數(shù)(并發(fā)度):指系統(tǒng)同時能處理的請求數(shù)量,同樣反應了系統(tǒng)的負載能力。這個數(shù)值可以分析機器1s內的訪問日志數(shù)量來得到
5、吐吞量
吞吐量是指系統(tǒng)在單位時間內處理請求的數(shù)量,TPS、QPS都是吞吐量的常用量化指標。
系統(tǒng)吞吐量要素
一個系統(tǒng)的吞吐量(承壓能力)與request(請求)對cpu的消耗,外部接口,IO等等緊密關聯(lián)。
單個request 對cpu消耗越高,外部系統(tǒng)接口,IO影響速度越慢,系統(tǒng)吞吐能力越低,反之越高。
重要參數(shù)
QPS(TPS),并發(fā)數(shù),響應時間
-
QPS(TPS):每秒鐘request/事務 數(shù)量 -
并發(fā)數(shù):系統(tǒng)同時處理的request/事務數(shù) -
響應時間:一般取平均響應時間
關系
QPS(TPS)=并發(fā)數(shù)/平均響應時間
一個系統(tǒng)吞吐量通常有QPS(TPS),并發(fā)數(shù)兩個因素決定,每套系統(tǒng)這個兩個值都有一個相對極限值,在應用場景訪問壓力下,只要某一項達到系統(tǒng)最高值,系統(tǒng)吞吐量就上不去了,如果壓力繼續(xù)增大,系統(tǒng)的吞吐量反而會下降,原因是系統(tǒng)超負荷工作,上下文切換,內存等等其他消耗導致系統(tǒng)性能下降。
6、PV
PV (Page View):頁面訪問量,即頁面瀏覽量或點擊量,用戶每次刷新即被計算一次。可以統(tǒng)計服務一天的訪問日志得到。
7、UV
UV (Unique Visitor):獨立訪客,統(tǒng)計1天內訪問某站點的用戶數(shù)。可以統(tǒng)計服務一天的訪問日志并根據(jù)用戶的唯一標識去重得到。響應時間(RT):響應時間是指系統(tǒng)對請求作出響應的時間,一般取平均響應時間。可以通過Nginx、Apache之類的Web Server得到。
8、DAU
DAU (Daily Active User),日活躍用戶數(shù)量。常用于反映網站、互聯(lián)網應用或網絡游戲的運營情況。DAU通常統(tǒng)計一日(統(tǒng)計日)之內,登錄或使用了某個產品的用戶數(shù)(去除重復登錄的用戶),與UV概念相似
9、MAU
MAU (Month Active User):月活躍用戶數(shù)量,指網站、app等去重后的月活躍用戶數(shù)量
10、系統(tǒng)吞吐量評估
我們在做系統(tǒng)設計的時候就需要考慮CPU運算,IO,外部系統(tǒng)響應因素造成的影響以及對系統(tǒng)性能的初步預估。
而通常情況下,我們面對需求,我們評估出來的出來QPS,并發(fā)數(shù)之外,還有另外一個維度:日pv。
通過觀察系統(tǒng)的訪問日志發(fā)現(xiàn),在用戶量很大的情況下,各個時間周期內的同一時間段的訪問流量幾乎一樣。比如工作日的每天早上。只要能拿到日流量圖和QPS我們就可以推算日流量。
通常的技術方法:
1、找出系統(tǒng)的最高TPS和日PV,這兩個要素有相對比較穩(wěn)定的關系(除了放假、季節(jié)性因素影響之外)
2、通過壓力測試或者經驗預估,得出最高TPS,然后跟進1的關系,計算出系統(tǒng)最高的日吞吐量。B2B中文和淘寶面對的客戶群不一樣,這兩個客戶群的網絡行為不應用,他們之間的TPS和PV關系比例也不一樣。
11、軟件性能測試的基本概念和計算公式
軟件做性能測試時需要關注哪些性能呢?
首先,開發(fā)軟件的目的是為了讓用戶使用,我們先站在用戶的角度分析一下,用戶需要關注哪些性能。
對于用戶來說,當點擊一個按鈕、鏈接或發(fā)出一條指令開始,到系統(tǒng)把結果已用戶感知的形式展現(xiàn)出來為止,這個過程所消耗的時間是用戶對這個軟件性能的直觀印 象。也就是我們所說的響應時間,當相應時間較小時,用戶體驗是很好的,當然用戶體驗的響應時間包括個人主觀因素和客觀響應時間,在設計軟件時,我們就需要 考慮到如何更好地結合這兩部分達到用戶最佳的體驗。如:用戶在大數(shù)據(jù)量查詢時,我們可以將先提取出來的數(shù)據(jù)展示給用戶,在用戶看的過程中繼續(xù)進行數(shù)據(jù)檢 索,這時用戶并不知道我們后臺在做什么。
用戶關注的是用戶操作的相應時間。
其次,我們站在管理員的角度考慮需要關注的性能點。
1、 響應時間
2、 服務器資源使用情況是否合理
3、 應用服務器和數(shù)據(jù)庫資源使用是否合理
4、 系統(tǒng)能否實現(xiàn)擴展
5、 系統(tǒng)最多支持多少用戶訪問、系統(tǒng)最大業(yè)務處理量是多少
6、 系統(tǒng)性能可能存在的瓶頸在哪里
7、 更換那些設備可以提高性能
8、 系統(tǒng)能否支持7×24小時的業(yè)務訪問
再次,站在開發(fā)(設計)人員角度去考慮。
1、 架構設計是否合理
2、 數(shù)據(jù)庫設計是否合理
3、 代碼是否存在性能方面的問題
4、 系統(tǒng)中是否有不合理的內存使用方式
5、 系統(tǒng)中是否存在不合理的線程同步方式
6、 系統(tǒng)中是否存在不合理的資源競爭
作者 |?Fysddsw_lc
來源 |http://juejin.im/post/5c2cb5e15188257a937fbfaf
(版權歸原作者所有,侵刪)