版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結和本聲明。 本文連結: https://blog.csdn.net/ITkampong/article/details/82499633
QPS: 每秒鐘處理完請求的次數;注意這裡是處理完。具體是指送出請求到伺服器處理完成功傳回結果。可以了解在server中有個counter,每處理一個請求加1,1秒後counter=QPS。
吞吐量: 這個問題從業務上來講,可以了解為應用系統每秒鐘最大能接受的使用者通路量。或者每秒鐘最大能處理的請求數;
TPS:每秒鐘處理完的事務次數,一般TPS是對整個系統來講的。一個應用系統1s能完成多少事務處理,一個事務在分布式進行中,可能會對應多個請求,對于衡量單個接口服務的處理能力,用QPS比較多。
并發量:系統能同時處理的請求數
RT:響應時間,處理一次請求所需要的平均處理時間
計算關系:
QPS = 并發量 / 平均響應時間
并發量 = QPS * 平均響應時間
一.系統吞度量要素:二.系統吞吐量評估:軟體性能測試的基本概念和計算公式一、軟體性能的關注點二、軟體性能的幾個主要術語1、響應時間:對請求作出響應所需要的時間2、并發使用者數的計算公式3、吞吐量的計算公式4、性能計數器5、思考時間的計算公式
PS:下面是性能測試的主要概念和計算公式,記錄下:
一.系統吞度量要素:
一個系統的吞度量(承壓能力)與request對CPU的消耗、外部接口、IO等等緊密關聯。
單個reqeust 對CPU消耗越高,外部系統接口、IO影響速度越慢,系統吞吐能力越低,反之越高。
系統吞吐量幾個重要參數:QPS(TPS)、并發數、響應時間
QPS(TPS):每秒鐘request/事務 數量
并發數: 系統同時處理的request/事務數
響應時間: 一般取平均響應時間
(很多人經常會把并發數和TPS了解混淆)
了解了上面三個要素的意義之後,就能推算出它們之間的關系:
QPS(TPS)= 并發數/平均響應時間
一個系統吞吐量通常由QPS(TPS)、并發數兩個因素決定,每套系統這兩個值都有一個相對極限值,在應用場景通路壓力下,隻要某一項達到系統最高值,系統的吞吐量就上不去了,如果壓力繼續增大,系統的吞吐量反而會下降,原因是系統超負荷工作,上下文切換、記憶體等等其它消耗導緻系統性能下降。
決定系統響應時間要素
我們做項目要排計劃,可以多人同時并發做多項任務,也可以一個人或者多個人串行工作,始終會有一條關鍵路徑,這條路徑就是項目的工期。
系統一次調用的響應時間跟項目計劃一樣,也有一條關鍵路徑,這個關鍵路徑是就是系統影響時間;
關鍵路徑是有CPU運算、IO、外部系統響應等等組成。
二.系統吞吐量評估:
我們在做系統設計的時候就需要考慮CPU運算、IO、外部系統響應因素造成的影響以及對系統性能的初步預估。
而通常境況下,我們面對需求,我們評估出來的出來QPS、并發數之外,還有另外一個次元:日PV。
通過觀察系統的通路日志發現,在使用者量很大的情況下,各個時間周期内的同一時間段的通路流量幾乎一樣。比如工作日的每天早上。隻要能拿到日流量圖和QPS我們就可以推算日流量。
通常的技術方法:
1. 找出系統的最高TPS和日PV,這兩個要素有相對比較穩定的關系(除了放假、季節性因素影響之外)
2. 通過壓力測試或者經驗預估,得出最高TPS,然後跟進1的關系,計算出系統最高的日吞吐量。B2B中文和淘寶面對的客戶群不一樣,這兩個客戶群的網絡行為不應用,他們之間的TPS和PV關系比例也不一樣。
A)淘寶
淘寶流量圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicGcq5ieMh0bfRjM4QTOwAjMvwlMxMTMwIzLcdWbp9CXzRWYvxGc19CX0VmbuEmbph2Yz9mLjlGdhR3cvw1LcpDc0RHaiojIsJye.jpg)
淘寶的TPS和PV之間的關系通常為 最高TPS:PV大約為 1 : 11*3600 (相當于按最高TPS通路11個小時,這個是商品詳情的場景,不同的應用場景會有一些不同)
B) 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、平均響應時間三者之間關系
來源:http://www.cnblogs.com/jackei/
軟體性能測試的基本概念和計算公式
一、軟體性能的關注點
對一個軟體做性能測試時需要關注那些性能呢?
我們想想在軟體設計、部署、使用、維護中一共有哪些角色的參與,然後再考慮這些角色各自關注的性能點是什麼,作為一個軟體性能測試工程師,我們又該關注什麼?
首先,開發軟體的目的是為了讓使用者使用,我們先站在使用者的角度分析一下,使用者需要關注哪些性能。
對于使用者來說,當點選一個按鈕、連結或發出一條指令開始,到系統把結果已使用者感覺的形式展現出來為止,這個過程所消耗的時間是使用者對這個軟體性能的直覺印象。也就是我們所說的響應時間,當相應時間較小時,使用者體驗是很好的,當然使用者體驗的響應時間包括個人主觀因素和客觀響應時間,在設計軟體時,我們就需要考慮到如何更好地結合這兩部分達到使用者最佳的體驗。如:使用者在大資料量查詢時,我們可以将先提取出來的資料展示給使用者,在使用者看的過程中繼續進行資料檢索,這時使用者并不知道我們背景在做什麼。
使用者關注的是使用者操作的相應時間。
其次,我們站在管理者的角度考慮需要關注的性能點。
1、 響應時間
2、 伺服器資源使用情況是否合理
3、 應用伺服器和資料庫資源使用是否合理
4、 系統能否實作擴充
5、 系統最多支援多少使用者通路、系統最大業務處理量是多少
6、 系統性能可能存在的瓶頸在哪裡
7、 更換那些裝置可以提高性能
8、 系統能否支援7×24小時的業務通路
再次,站在開發(設計)人員角度去考慮。
1、 架構設計是否合理
2、 資料庫設計是否合理
3、 代碼是否存在性能方面的問題
4、 系統中是否有不合理的記憶體使用方式
5、 系統中是否存在不合理的線程同步方式
6、 系統中是否存在不合理的資源競争
那麼站在性能測試工程師的角度,我們要關注什麼呢?
一句話,我們要關注以上所有的性能點。
二、軟體性能的幾個主要術語
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
QPS: 每秒鐘處理完請求的次數;注意這裡是處理完。具體是指送出請求到伺服器處理完成功傳回結果。可以了解在server中有個counter,每處理一個請求加1,1秒後counter=QPS。