Jmeter的Throughput和平均響應時間計算方法整理


 

整理了下Jmeter的Throughput和平均RT的計算,如下公式:

 

TPS=(sample樣本數)/(最后一個線程啟動的時間+最后一個線程持續的時間-第一個線程啟動的時間)

RT=所有sample樣本響應時間和/樣本個數

 

1.TPS:每秒處理的事務數,jmeter的Throughput為吞吐率(請求數/秒),在加了事務控制器后,TPS=Throughput

宏觀上:TPS=並發數/響應時間,jmeter的Throughput = (number of requests) / (total time) ,即

Throughput =(sample樣本數)/(最后一個線程啟動的時間+最后一個線程持續的時間-第一個線程啟動的時間)

可以這樣理解這個公式:絕對的並發是不存在的,請求發出的時間總有先后,絕對的TPS也是無法計算的,統計的角度看,服務器處理請求總數/花費的時間即是TPS,這也是

為什么需要不斷增大用戶數來尋找服務器的最大TPS的原因

 

2.平均響應時間=所有sample樣本響應時間和/樣本個數

 

 誤區:

TPS=請求數/RT   (RT是所有事物的平均時間) 

 

此TPS的計算公式是錯誤的

 

數學公式法:

    TPS= (number of requests) / (total time)       --------公式1     TPS的定義公式

  TPS=1/RT * 請求數 = 樣本個數2/所有sample樣本響應時間和   -----------公式2 帶入公式  平均響應時間=所有sample樣本響應時間和/樣本個數

    假設公式2等於公式1 ,則 

    (number of requests) / (total time) = 樣本個數2/所有sample樣本響應時間和  

    即:

    1/ (total time)  =  樣本個數 / 所有sample樣本響應時間和 

    顯然等式兩邊不成立,假設不成立

 

    另:number of requests 是等於 樣本個數  等於  請求數

 

 

場景分析法:

    場景1,A應用是單線程處理,處理一個請求需要1s,5個VU去請求一次,第一個請求花費了1s,第二個花了2s...第五個花了5s,5個請求總耗時5秒,5個請求響應時間的總和是(5+4+3+2+1)=15 s,總請求數是5,所以A系統的TPS = 5/5 = 1,平均響應時間是(5+4+3+2+1)/5=3s,此時若按照TPS=1/RT*請求數  計算,則TPS=1/3 * 5 = 5/3 , 顯然是不對的

    場景2,當去請求多個事物時,此時這個公式是明顯錯誤的

 

參考:

http://www.i3geek.com/archives/1165

http://jmeter.apache.org/usermanual/glossary.html#Throughput

http://yhz61010.iteye.com/blog/1735874

http://www.cnblogs.com/ceshixuexi/p/7116683.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM