下面具体解释下各个参数的含义:
-
Server Software: Web主機的作業系統與版本(若Web主機設定關閉此資訊則無);在此例中就是压力测试的对象nginx
-
Server Hostname: Web主機的IP位址(Hostname)
-
Server Port: Web主機的連接埠(Port)
-
Document Path: 測試網址的路徑部分
-
Document Length: 測試網頁回應的網頁大小
-
Concurrency Level: 同時進行壓力測試的人數
-
Time taken for tests: 本次壓力測試所花費的總秒數 ;此次压力测试花费的世间
-
Complete requests: 完成的要求數(Requests)
-
Failed requests: 失敗的要求數(Requests)
-
Write errors: 寫入失敗的數量
-
Total transferred: 本次壓力測試的總數據傳輸量(包括 HTTP Header 的資料也計算在內)
-
HTML transferred: 本次壓力測試的總數據傳輸量(僅計算回傳的 HTML 的資料)
-
Requests per second: 平均每秒可回應多少要求 ;是否可以认为是QPS
-
Time per request: 平均每個要求所花費的時間(單位: 豪秒) ;每次并发请求时间(所有并发)
-
Time per request: 平均每個要求所花費的時間,跨所有同時連線數的平均值(單位: 豪秒) ;每一次请求时间(并发平均)
-
Transfer rate: 從 ab 到 Web Server 之間的網路傳輸速度
最後的 Connection Times (ms) 指的是壓力測試時的連線處理時間:
橫軸欄位的部分:
-
min: 最小值
-
mean: 平均值(正、負標準差)
-
median: 平均值(中間值)
-
max: 最大值
縱軸欄位的部分:
-
Connect: 從 ab 發出 TCP 要求到 Web 主機所花費的建立時間。
-
Processing: 從 TCP 連線建立後,直到 HTTP 回應(Response)的資料全部都收到所花的時間。
-
Waiting: 從發送 HTTP 要求完後,到 HTTP 回應(Response)第一個 Byte 所等待的時間。
-
Total: 等於 Connect + Processing 的時間(因為 Waiting 包含在 Processing 時間內了)
壓力測試的基本觀念
-
排除頻寬的限制
-
做壓力測試通常不會考量「頻寬的限制」,所以一般來說不會將測試的主機擺在遠端機房、然後測試程式擺在公司內部的主機,而是會將壓力測試的 Client 跟 Web 主機擺在同一個網段下進行壓力測試。
-
因為「頻寬」只要花錢就會有了,但是主機的承載量卻是有限的,從遠端進行壓力測試主要的限制是在「頻寬」而非「效能」,所以從遠端單點進行壓力測試毫無任何意義可言,這樣是測不出主機的效能極限的。
-
如果你有能力與資源進行大規模(多點)壓力測試的話,透過遠端進行壓力測試才有意義。
-
壓力要循序漸進
-
你不要一下字就執行同時連線數 100 人,而是要循序漸進的慢慢加同時連線數上去,才不會讓 Web
Application 一下字承受過大的負載而導致效能的數據不正確(例如說 Failed requests
過高),但這只是建議,你也可以一下子操死你的主機,反正你在測主機的極限嘛!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。