一、
Web Page Breakdown
DNS
解析時間:
顯示使用最近的
DNS
服務器將
DNS
名稱解析為
IP
地址所需的時間;
DNS
查找度量是指示
DNS
解析問題或
DNS
服務器問題的一個很好的指示器;
Connect
時間:
顯示與包含指定
URL
的
Web
服務器建立初始連接所需的時間;
Connect
度量是一個很好的網絡問題指示器;它還可表明服務器是否對請求做出響應;
First buffer
時間:
顯示從初始
HTTP
請求到成功收回來自
WEB
服務器的第一次緩沖時為止所經過的時間;
First buffer
度量是很好的
Web
服務器延遲和網絡滯后指示器;
SSL Handshaking time
:
顯示建立
SSL
連接所用的時間
Receive Time
:
顯示從服務器收到最后一個字節并完成下載之前經過的時間;接收度量是很好的網絡質量指示器;
FTP
驗證時間:
顯示驗證客戶端所用的時間。
Client Time
:
顯示因瀏覽器思考時間或其他與客戶端有關的延遲而使客戶機上的請求發生延遲時,所經過的時間。
Error
時間:
顯示從發出
HTTP
請求到返回錯誤消息這期間所經過的平均時間
(
二、 關于 TPS ( Transactions per Second ): 每秒處理事務數
這個值可以說明系統在特定的負載情況下,每秒可以處理多少個客戶端請求,這是一個衡量服務器端性能的重要指標,相信各位在進行性能測試的時候經常會用到這個指標。但是一直以來我都有一個疑問,到底這個值是怎么算出來的。既然是每秒事務數,那算法自然是“事務數 / 時間”。事務數很好理解,執行了多少就是多少,關鍵是這個時間。是整個場景執行的時間,還是僅僅是在服務器端執行的時間?因為我們知道,這兩個時間肯定是有區別的,前者還包括 thinktime 的時間、 pacing 的時間以及在網絡上耗費的時間等等。
為了弄明白這個問題,我今天特地查了一下幫助文檔,看到上面是這么說的:“每秒事務數圖顯示在場景或會話步驟運行的每一秒中,每個事務通過、失敗以及停止的次數。”如果按照這句話去理解,那么上面那個問題的答案應該是后者,也就是說,在 Transaactions per Second 這張圖中, LoadRunner 是針對場景運行過程中的每一個時間點取樣一次,顯示在這個時間點上每個事務的通過、失敗以及停止的個數。
另外,我還在 Analysis 里面找了一下,發現圖表的時間顯示粒度也是可以設置的。具體方法為:在圖表上點擊右鍵 -> 選擇“ Set Granularity ”或者直接按 Ctrl+G 。我試著把時間粒度調成以毫秒為單位,結果 LoadRunner 提示當前不支持以毫秒為顯示粒度,由此我推斷 LoadRunner 對于 Transactions per Second 這張圖,最小的取樣粒度為 1 秒。
(
三、 事務響應時間(百分比)圖
這個圖顯示的是事務響應時間范圍的分布情況。在場景的執行中,每個定義的事務可能會不止被處理一次(因為設置了持續時間或者迭代次數), LoadRunner 會為每個事務實例的處理分別記錄響應時間。在 Summary Report 中, LoadRunner 會針對每個事務的響應時間數據集合,分別取它的最大值、最小值和平均值,通常我們會關注響應時間的平均值。然而很多時候,單單是平均響應時間可能是不夠的,因為一旦最大值和最小值出現較大的偏差,即便平均響應時間處在可以接受的范圍內,但并不意味著整個系統的性能就是可以接受的,我們有必要再借助其它的分析報表來進一步分析,此時事務響應時間(百分比)圖就派上用場了。
事務響應時間(百分比)給出的是每個事務的響應時間按百分比的分布情況,它告訴我們本次測試有多少個事務的平均響應時間是落在我們可以接受的時間范圍之內。如果最大響應時間非常長,但是絕大多數事務(通常情況下以
95%
為參考)的響應時間具有可以接受的響應時間,則我們認為整個系統的性能還是可以接受的。
注意:
Analysis
將對每個可用事務百分比的事務響應時間取近似值。因此
Y
軸的值可能并不準確。
(
四、 事務響應時間(負載下)圖
這個圖顯示的是事務響應時間隨著場景中虛擬用戶的逐漸增長的變化趨勢圖,該圖可以幫助我們查看 Vuser 負載對性能問題的影響。當我們需要了解某個事務的響應時間隨著虛擬用戶的增加而產生的變化時,可以通過在控制臺中設置一個漸變負載的場景的方式來實現。
例如每 5 分鐘加載 10 個用戶等,然后考察得到的這張圖表,就能夠對此有一個比較好的理解。
(
我只是在說這幾張圖所表示的含義,這幾張圖的名稱都比較容易看懂,用不著貼圖了吧?
事務響應時間和每秒事務數(或單位時間的事務數),但從指標的意義來說,應該是互為倒數的。但是從實際測試結果的數值來看,又沒有這樣的規律。
而實際上,事務響應時間在LR的統計中應該是包括了thinktime、網絡時間等消耗的,而每秒事務數僅僅是在服務器端執行的時間,由于兩者在數據的統計并不相同因此并不會是倒數關系。
不知道有沒有說錯?
我在上文中說的是每秒事務數圖所表示的含義,LR在運行場景的過程中,會對每一個時間點采樣一次,記錄在這個時間點上所通過的事務數,將其繪制成分析圖,這就是我們所看到的“每秒事務數圖”,而我們通常所關注的TPS值,應該是由這些采樣值所取的平均值,這樣看來,事務響應時間和每秒事務數肯定不會是簡單的倒數關系。
有關于每秒事務數的問題。每秒事務數=事務總數/運行時間。這里的運行時間應該是指場景從開始到結束的時間。因為按照幫助文件中的描述“每秒事務數圖顯示在場景或會話步驟運行的每一秒中,每個事務通過、失敗以及停止的次數。” 也就是說,在場景運行中,截取某一個點 來統計當前完成的事務數。所以整個的時間范圍應該是場景運行時間。而不是服務器的運行時間。
我這樣說的證據是,我觀察了以前測試過的很多場景,都是總的事務數/場景運行時間=每秒事務數。
另外再說一個我的問題:虛擬用戶數、響應時間、每秒事務數的關系。
一個虛擬用戶在場景中運行,無非要做以下事情:初始化、迭代Action、結束。迭代運行時,包含額外的記錄日志功能。(腳本中沒有ThinkTime)。
按照這樣的理論,去掉日志功能。那么就應該有以下的關系:虛擬用戶數/響應時間=每秒完成的事務數。但在時間的場景分析中,發現上述的關系不成立,不知道是什么原因?
關于你說的第一個問題,按照幫助文件中的說法,可能我在上文中表述的意思有些模糊,其實我的理解是這樣的:在場景運行的整個過程中,LR都會對每一個時間點采樣一次,取在這個時間點上通過的事務數,然后畫一個分析圖。而你說的“總的事務數/場景運行時間=每秒事務數。 ”我不清楚你說的這個“每秒事務數”是從哪里得到的,如果是TPS圖下方的平均值,我認為這個值應該是這些采樣值的平均,而不是這樣得到的。當然也有可能是我理解的錯誤,歡迎繼續討論,希望我們最終能得到一個正確的結論。
至于你的第二個問題,我不太理解你的意思,,虛擬用戶數和完成的事務數并沒有確實的對應關系,一個虛擬用戶執行的腳本中可能包含多個事務(有時還會包括init和end事務),所以你說的“虛擬用戶數/響應時間=每秒完成的事務數”,是沒有什么根據的。
如果這樣的話,事務響應時間和每秒事務數都不是通過場景時間、事務數的除法算出來的,而是分別通過對采樣點的計數和采樣點的數值得到的。既然如此的話,應該就不存在什么關系了。
精通一個測試工具,真的是一門很深的學問啊。
“LR都會對每一個時間點采樣一次,取在這個時間點上通過的事務數”這個說法看一下分析圖就可以得出來的,而我以前可能過分關注了平均值,忽略了場景運行過程中的一些數值。
ppent朋友說得不錯,精通一門測試工具,其實涉及到很多相關的內容,是個知識面的問題。呵呵,大家一起努力吧。
呵呵,
每秒事務數圖顯示在場景或會話步驟運行的每一秒中,每個事務通過、失敗以及停止的次數。”如果按照這句話去理解,那么上面那個問題的答案應該是后者
應該是前者吧.
呵呵,我寫這個已經有一段時間了,現在自己再看我寫的這幾句話,也挺費解,已經想不起來為什么當時會這么寫了。
現在想想其實我這樣的描述似乎并不是很合適,對于幫助里的這句話,僅僅從它字面上的意思就挺好理解了,沒有必要區分這里的前者和后者,我這樣描述反而可能對大家造成誤導了,不好意思。^o^
看Transactions per Second圖某一事務的平均值嗎?期待回答
那為什么我設置運行15個用戶5次迭代,訪問用戶查詢頁面,Transactions Per Second顯示事務:訪問用戶查詢頁面的Averager才0.101
這樣是不是該事務的每秒事務數才:0.101啊
事務數是否等于15×5(15個用戶5次迭代),如果整個案例時間為:12:22分,那么TPS=75/(12*60+12)=0.101
一個一個來吧:
1、是的。但是TPS值這么小,你要檢查一下具體的原因。如,是不是把thinktime算進去了?你的事務定義得是否有問題?等等。
2、每秒事務數可以是每秒交易數,這要看你的事務和交易分別是怎么定義的。
3、平均TPS值是這樣算的沒有錯。
1、沒有算thinktime,忽略了thinktime,事務定義是:從開始點擊“用戶查詢”菜單到顯示用戶查詢頁面
2、因為響應時間比較長:達39秒,響應時間很長會影響每秒事務數嗎?
每秒交易數我還不知道是如何定義的,:(,概念比較模糊
當然會影響啊,你自己都知道TPS是事務數/時間,那么時間越大,當然TPS就越小啦。
難道不是嗎?時間是響應時間?那我更糊涂了
39指的是訪問查詢用戶頁面的響應時間。
實在不好意思,:(,我上面算的是:
TPS = 事務數/整個案例時間
事務數是否等于15×5(15個用戶5次迭代),如果整個案例時間為:12:22分,那么TPS=75/(12*60+12)=0.101
其實我的意思是,響應時間長了,也就意味著TPS低。
不是說響應時間長會影響TPS,而是說響應時間長了會導致TPS低。
也就是你要衡量的這個事務性能有問題,詳細的要再跟蹤。
TPS = 事務數/整個案例時間是對的吧?
不過我建議你找一個實際的測試結果,自己看看,會理解得更清楚些。
我當時是這樣分析的:
當用戶量達到一定量的時候,我的tps(每秒鐘事務數)一直在50左右波動。
那么當我有200個并發用戶的時候,等待時間最長的那個用戶的等待時間為:200/50=4秒。等待時間最短的那個用戶肯定是0.03秒以下。那么平均等待時間大概可以估算為:(200/50)/2=2秒。
按照這個想法,假設用戶數為:x,事務平均響應時間為:y。那么y=(x/50)/2=x/100.這個方程好像就是個直線啊?