1、QPS
QPS Queries Per Second 是每秒查詢率 ,是一台服務器每秒能夠相應的查詢次數,是對一個特定的查詢服務器在規定時間內所處理流量多少的衡量標准, 即每秒的響應請求數,也即是最大吞吐能力。
2、TPS
TPS Transactions Per Second 也就是事務數/秒。一個事務是指一個客戶機向服務器發送請求然后服務器做出反應的過程。客戶機在發送請求時開始計時,收到服務器響應后結束計時,以此來計算使用的時間和完成的事務個數,
3、QPS和TPS區別
個人理解如下:
1、Tps即每秒處理事務數,包括了
-
用戶請求服務器
- 服務器自己的內部處理
- 服務器返回給用戶
這三個過程,每秒能夠完成N個這三個過程,Tps也就是N;
2、Qps基本類似於Tps,但是不同的是,對於一個頁面的一次訪問,形成一個Tps;但一次頁面請求,可能產生多次對服務器的請求,服務器對這些請求,就可計入“Qps”之中。
例子:
例如:訪問一個頁面會請求服務器3次,一次放,產生一個“T”,產生3個“Q”
例如:一個大胃王一秒能吃10個包子,一個女孩子0.1秒能吃1個包子,那么他們是不是一樣的呢?答案是否定的,因為這個女孩子不可能在一秒鍾吃下10個包子,她可能要吃很久。這個時候這個大胃王就相當於TPS,而這個女孩子則是QPS。雖然很相似,但其實是不同的。
4、並發數
並發數(並發度):指系統同時能處理的請求數量,同樣反應了系統的負載能力。這個數值可以分析機器1s內的訪問日志數量來得到
5、吐吞量
吞吐量是指系統在單位時間內處理請求的數量,TPS、QPS都是吞吐量的常用量化指標。
系統吞吐量要素
一個系統的吞吐量(承壓能力)與request(請求)對cpu的消耗,外部接口,IO等等緊密關聯。
單個request 對cpu消耗越高,外部系統接口,IO影響速度越慢,系統吞吐能力越低,反之越高。
重要參數
QPS(TPS),並發數,響應時間
-
QPS(TPS):每秒鍾request/事務 數量
-
並發數:系統同時處理的request/事務數
-
響應時間:一般取平均響應時間
關系
QPS(TPS)=並發數/平均響應時間
一個系統吞吐量通常有QPS(TPS),並發數兩個因素決定,每套系統這個兩個值都有一個相對極限值,在應用場景訪問壓力下,只要某一項達到系統最高值,系統吞吐量就上不去了,如果壓力繼續增大,系統的吞吐量反而會下降,原因是系統超負荷工作,上下文切換,內存等等其他消耗導致系統性能下降。
6、PV
PV(Page View):頁面訪問量,即頁面瀏覽量或點擊量,用戶每次刷新即被計算一次。可以統計服務一天的訪問日志得到。
7、UV
UV(Unique Visitor):獨立訪客,統計1天內訪問某站點的用戶數。可以統計服務一天的訪問日志並根據用戶的唯一標識去重得到。響應時間(RT):響應時間是指系統對請求作出響應的時間,一般取平均響應時間。可以通過Nginx、Apache之類的Web Server得到。
8、DAU
DAU(Daily Active User),日活躍用戶數量。常用於反映網站、互聯網應用或網絡游戲的運營情況。DAU通常統計一日(統計日)之內,登錄或使用了某個產品的用戶數(去除重復登錄的用戶),與UV概念相似
9、MAU
MAU(Month Active User):月活躍用戶數量,指網站、app等去重后的月活躍用戶數量
10、系統吞吐量評估
我們在做系統設計的時候就需要考慮CPU運算,IO,外部系統響應因素造成的影響以及對系統性能的初步預估。
而通常情況下,我們面對需求,我們評估出來的出來QPS,並發數之外,還有另外一個維度:日pv。
通過觀察系統的訪問日志發現,在用戶量很大的情況下,各個時間周期內的同一時間段的訪問流量幾乎一樣。比如工作日的每天早上。只要能拿到日流量圖和QPS我們就可以推算日流量。
通常的技術方法:
1、找出系統的最高TPS和日PV,這兩個要素有相對比較穩定的關系(除了放假、季節性因素影響之外)
2、通過壓力測試或者經驗預估,得出最高TPS,然后跟進1的關系,計算出系統最高的日吞吐量。B2B中文和淘寶面對的客戶群不一樣,這兩個客戶群的網絡行為不應用,他們之間的TPS和PV關系比例也不一樣。
1)淘寶
淘寶流量圖:
淘寶的TPS和PV之間的關系通常為 最高TPS:PV大約為 1 : 11*3600 (相當於按最高TPS訪問11個小時,這個是商品詳情的場景,不同的應用場景會有一些不同)
2) B2B中文站
B2B的TPS和PV之間的關系不同的系統不同的應用場景比例變化比較大,粗略估計在1 : 8個小時左右的關系(09年對offerdetail的流量分析數據)。旺鋪和offerdetail這兩個比例相差很大,可能是因為爬蟲暫的比例較高的原因導致。
在淘寶環境下,假設我們壓力測試出的TPS為100,那么這個系統的日吞吐量=100*11*3600=396萬
這個是在簡單(單一url)的情況下,有些頁面,一個頁面有多個request,系統的實際吞吐量還要小。
無論有無思考時間(T_think),測試所得的TPS值和並發虛擬用戶數(U_concurrent)、Loadrunner讀取的交易響應時間(T_response)之間有以下關系(穩定運行情況下):
TPS=U_concurrent / (T_response+T_think)。
並發數、QPS、平均響應時間三者之間關系
11、軟件性能測試的基本概念和計算公式
軟件做性能測試時需要關注哪些性能呢?
首先,開發軟件的目的是為了讓用戶使用,我們先站在用戶的角度分析一下,用戶需要關注哪些性能。
對於用戶來說,當點擊一個按鈕、鏈接或發出一條指令開始,到系統把結果已用戶感知的形式展現出來為止,這個過程所消耗的時間是用戶對這個軟件性能的直觀印 象。也就是我們所說的響應時間,當相應時間較小時,用戶體驗是很好的,當然用戶體驗的響應時間包括個人主觀因素和客觀響應時間,在設計軟件時,我們就需要 考慮到如何更好地結合這兩部分達到用戶最佳的體驗。如:用戶在大數據量查詢時,我們可以將先提取出來的數據展示給用戶,在用戶看的過程中繼續進行數據檢 索,這時用戶並不知道我們后台在做什么。
用戶關注的是用戶操作的相應時間。
其次,我們站在管理員的角度考慮需要關注的性能點。
1、 響應時間
2、 服務器資源使用情況是否合理
3、 應用服務器和數據庫資源使用是否合理
4、 系統能否實現擴展
5、 系統最多支持多少用戶訪問、系統最大業務處理量是多少
6、 系統性能可能存在的瓶頸在哪里
7、 更換那些設備可以提高性能
8、 系統能否支持7×24小時的業務訪問
再次,站在開發(設計)人員角度去考慮。
1、 架構設計是否合理
2、 數據庫設計是否合理
3、 代碼是否存在性能方面的問題
4、 系統中是否有不合理的內存使用方式
5、 系統中是否存在不合理的線程同步方式
6、 系統中是否存在不合理的資源競爭
12、軟件性能的幾個主要術語
1)響應時間:對請求作出響應所需要的時間
網絡傳輸時間:N1+N2+N3+N4
應用服務器處理時間:A1+A3
數據庫服務器處理時間:A2
響應時間=N1+N2+N3+N4+A1+A3+A2
2)並發用戶數的計算公式
系統用戶數:系統額定的用戶數量,如一個OA系統,可能使用該系統的用戶總數是5000個,那么這個數量,就是系統用戶數。
同時在線用戶數:在一定的時間范圍內,最大的同時在線用戶數量。
同時在線用戶數=每秒請求數RPS(吞吐量)+並發連接數+平均用戶思考時間
平均並發用戶數的計算:C=nL / T
其中C是平均的並發用戶數,n是平均每天訪問用戶數(login session),L是一天內用戶從登錄到退出的平均時間(login session的平均時間),T是考察時間長度(一天內多長時間有用戶使用系統)
並發用戶數峰值計算:C^約等於C + 3*根號C
其中C^是並發用戶峰值,C是平均並發用戶數,該公式遵循泊松分布理論。
3)吞吐量的計算公式
指單位時間內系統處理用戶的請求數
從業務角度看,吞吐量可以用:請求數/秒、頁面數/秒、人數/天或處理業務數/小時等單位來衡量
從網絡角度看,吞吐量可以用:字節/秒來衡量
對於交互式應用來說,吞吐量指標反映的是服務器承受的壓力,他能夠說明系統的負載能力
以不同方式表達的吞吐量可以說明不同層次的問題,例如,以字節數/秒方式可以表示數要受網絡基礎設施、服務器架構、應用服務器制約等方面的瓶頸;已請求數/秒的方式表示主要是受應用服務器和應用代碼的制約體現出的瓶頸。
當沒有遇到性能瓶頸的時候,吞吐量與虛擬用戶數之間存在一定的聯系,可以采用以下公式計算:F=VU * R /
其中F為吞吐量,VU表示虛擬用戶個數,R表示每個虛擬用戶發出的請求數,T表示性能測試所用的時間
4)性能計數器
是描述服務器或操作系統性能的一些數據指標,如使用內存數、進程時間,在性能測試中發揮着“監控和分析”的作用,尤其是在分析統統可擴展性、進行新能瓶頸定位時有着非常關鍵的作用。
資源利用率:指系統各種資源的使用情況,如cpu占用率為68%,內存占用率為55%,一般使用“資源實際使用/總的資源可用量”形成資源利用率。
5)思考時間的計算公式
Think Time,從業務角度來看,這個時間指用戶進行操作時每個請求之間的時間間隔,而在做新能測試時,為了模擬這樣的時間間隔,引入了思考時間這個概念,來更加真實的模擬用戶的操作。
在吞吐量這個公式中F=VU * R / T說明吞吐量F是VU數量、每個用戶發出的請求數R和時間T的函數,而其中的R又可以用時間T和用戶思考時間TS來計算:R = T / TS
下面給出一個計算思考時間的一般步驟:
A、首先計算出系統的並發用戶數
C=nL / T F=R×C
B、統計出系統平均的吞吐量
F=VU * R / T R×C = VU * R / T
C、統計出平均每個用戶發出的請求數量
R=u*C*T/VU
D、根據公式計算出思考時間
TS=T/R
13、