系統吞吐量(TPS)、用戶併發量、性能測試概念和公式

概述

下面是性能測試的主要概念和計算公式,記錄下:

一.系統吞度量要素:

一個系統的吞度量(承壓能力)與request對CPU的消耗、外部接口、IO等等緊密關聯。

單個reqeust 對CPU消耗越高,外部系統接口、IO影響速度越慢,系統吞吐能力越低,反之越高。

系統吞吐量幾個重要參數:QPS(TPS)、併發數、響應時間

QPS(TPS):每秒鐘request/事務 數量

併發數: 系統同時處理的request/事務數

響應時間: 一般取平均響應時間

(很多人經常會把併發數和TPS理解混淆)

理解了上面三個要素的意義之後,就能推算出它們之間的關係:

QPS(TPS)= 併發數/平均響應時間

一個系統吞吐量通常由QPS(TPS)、併發數兩個因素決定,每套系統這兩個值都有一個相對極限值,在應用場景訪問壓力下,只要某一項達到系統最高值,系統的吞吐量就上不去了,如果壓力繼續增大,系統的吞吐量反而會下降,原因是系統超負荷工作,上下文切換、內存等等其它消耗導致系統性能下降。

決定系統響應時間要素

我們做項目要排計劃,可以多人同時併發做多項任務,也可以一個人或者多個人串行工作,始終會有一條關鍵路徑,這條路徑就是項目的工期。

系統一次調用的響應時間跟項目計劃一樣,也有一條關鍵路徑,這個關鍵路徑是就是系統影響時間;

關鍵路徑是有CPU運算、IO、外部系統響應等等組成。

二.系統吞吐量評估:

我們在做系統設計的時候就需要考慮CPU運算、IO、外部系統響應因素造成的影響以及對系統性能的初步預估。

而通常境況下,我們面對需求,我們評估出來的出來QPS、併發數之外,還有另外一個維度:日PV。

通過觀察系統的訪問日誌發現,在用戶量很大的情況下,各個時間週期內的同一時間段的訪問流量幾乎一樣。比如工作日的每天早上。只要能拿到日流量圖和QPS我們就可以推算日流量。

併發數、QPS、平均響應時間三者之間關係

系統吞吐量(TPS)、用戶併發量、性能測試概念和公式

三、軟件性能的幾個主要術語

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


上面的公式雖然不用都去記住,但是多看幾遍,多理解對我們去做性能優化和監控是有一定幫助的,覺得有用的朋友幫忙轉發下哦!!

後面會分享更多關於devops和DBA內容,感興趣的朋友可以關注下。

系統吞吐量(TPS)、用戶併發量、性能測試概念和公式


分享到:


相關文章: