轉載自:http://jackei.cnblogs.com 作者:陳雷 (Jackei)
簡介:
ab的全稱是ApacheBench,是 Apache 附帶的一個小工具,專門用於 HTTP Server 的benchmark testing,可以同時類比多個並發請求。前段時間看到公司的開發人員也在用它作一些測試,看起來也不錯,很簡單,也很容易使用,所以今天花一點時間看了一下。
通過下面的一個簡單的例子和注釋,相信大家可以更容易理解這個工具的使用。
一個簡單的例子:
/*在這個例子的一開始,我執行了這樣一個命令 ab -n 10 -c 10 http://www.google.com/。這個命令的意思是啟動 ab ,向 www.google.com 發送10個請求(-n 10) ,並每次發送10個請求(-c 10)——也就是說一次都發過去了。跟著下面的是 ab 輸出的測試報告,紅色部分是我添加的注釋。*/
C:/Program Files/Apache Software Foundation/Apache2.2/bin>ab -n 10 -c 10 http
://www.google.com/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 1997-2005 The Apache Software Foundation, http://www.apache.org/
Benchmarking www.google.com (be patient).....done
Server Software: GWS/2.1
Server Hostname: www.google.com
Server Port: 80
Document Path: /
Document Length: 230 bytes
Concurrency Level: 10
/*整個測試持續的時間*/
Time taken for tests: 3.234651 seconds
/*完成的請求數量*/
Complete requests: 10
/*失敗的請求數量*/
Failed requests: 0
Write errors: 0
Non-2xx responses: 10
Keep-Alive requests: 10
/*整個情境中的網路傳輸量*/
Total transferred: 6020 bytes
/*整個情境中的HTML內容傳輸量*/
HTML transferred: 2300 bytes
/*大家最關心的指標之一,相當於 LR 中的 每秒事務數 ,後面括弧中的 mean 表示這是一個平均值*/
Requests per second: 3.09 [#/sec] (mean)
/*大家最關心的指標之二,相當於 LR 中的 平均事務回應時間 ,後面括弧中的 mean 表示這是一個平均值*/
Time per request: 3234.651 [ms] (mean)
/*這個還不知道是什麼意思,有知道的朋友請留言,謝謝 ^_^ */
Time per request: 323.465 [ms] (mean, across all concurrent requests)
/*平均每秒網路上的流量,可以協助排除是否存在網路流量過大導致回應時間延長的問題*/
Transfer rate: 1.55 [Kbytes/sec] received
/*網路上消耗的時間的分解,各項資料的具體演算法還不是很清楚*/
Connection Times (ms)
min mean[+/-sd] median max
Connect: 20 318 926.1 30 2954
Processing: 40 2160 1462.0 3034 3154
Waiting: 40 2160 1462.0 3034 3154
Total: 60 2479 1276.4 3064 3184
/*下面的內容為整個情境中所有請求的響應情況。在情境中每個請求都有一個回應時間,其中 50% 的使用者回應時間小於 3064 毫秒,60 % 的使用者回應時間小於 3094 毫秒,最大的回應時間小於 3184 毫秒*/
Percentage of the requests served within a certain time (ms)
50% 3064
66% 3094
75% 3124
80% 3154
90% 3184
95% 3184
98% 3184
99% 3184
100% 3184 (longest request)