Apache裡面的ab測試內容詳解

2021-08-20 21:20:25 字數 3209 閱讀 1017

一直以來我都是用loadrunner去做效能測試。loadrunner實際上是乙個很重的效能測試工具。他的功能很全面,是一把很好的牛刀。

如果我們只是需要對乙個頁面做簡單的效能測試,使用loadruner這把牛刀就不是乙個很好的選擇了。

測試命令:

ab -n 100 -c 10 

本文主要針對ab的測試報告進行解析,有關ab的使用方法改天再新開貼交流。

測試報告:

下面來逐行解釋我的理解,以下注釋部分有查閱網上資料,但所寫內容均為自己理解之後手打內容,希望加入自己的理解之後能讓讀者更容易理解。

bogon:~ tang$ ab -n 100 -c 10 

this is apachebench, version 2.3

licensed to the apache software foundation,

//以上為apache的版本資訊,與本次測試無關

//以上內容顯示測試完成度,本次測試發起請求數量較少,完成較快,無中間過程顯示。在請求數量很多時會分行顯示當前完成數量。

server hostname:        www.baidu.com //被測主機名

server port:            443 //被測主機的服務埠號,一般http請求的預設埠號是80,https預設使用443埠

ssl/tls protocol:       tlsv1.2,ecdhe-rsa-aes128-gcm-sha256,2048,128 //加密協議

document path:          /index.html  //請求的具體檔案

document length:        227 bytes   //請求的檔案index.html大小

concurrency level:      10 //併發級別,也就是併發數,請求中-c引數指定的數量

time taken for tests:   1.093 seconds //本次測試總共花費的時間

complete requests:      100 //本次測試總共發起的請求數量

failed requests:        0 //失敗的請求數量。因網路原因或伺服器效能原因,發起的請求並不一定全部成功,通過該數值和complete requests相除可以計算請求的失敗率,作為測試結果的重要參考。

total transferred:      103314 bytes  //總共傳輸的資料量,指的是ab從被測伺服器接收到的總資料量,包括index.html的文字內容和請求頭資訊。

html transferred:       22700 bytes //從伺服器接收到的index.html檔案的總大小,等於document length*complete requests=227 bytes*100=22700 bytes

requests per second:    91.50 [#/sec] (mean) //平均(mean)每秒完成的請求數:qps,這是乙個平均值,等於complete requests/time taken for tests=100/1.093=91.50

time per request:       109.287 [ms] (mean) //從使用者角度看,完成乙個請求所需要的時間(因使用者數量不止乙個,伺服器完成10個請求,平均每個使用者才接收到乙個完整的返回,所以該值是下一項數值的10倍。)

time per request:       10.929 [ms] (mean, across all concurrent requests)// 伺服器完成乙個請求的時間。

transfer rate:          92.32 [kbytes/sec] received  //網路傳輸速度。對於大檔案的請求測試,這個值很容易成為系統瓶頸所在。要確定該值是不是瓶頸,需要了解客戶端和被測伺服器之間的網路情況,包括網路頻寬和網絡卡速度等資訊。

connection times (ms)

min  mean[+/-sd] median   max

connect:       47   74  12.9     74     106

processing:     9   32  20.2     32     106

waiting:        9   29  19.1     27      98

total:         66  106  20.8    106     195

//這幾行組成的**主要是針對響應時間也就是第乙個time per request進行細分和統計。乙個請求的響應時間可以分成網路鏈結(connect),系統處理(processing)和等待(waiting)三個部分。表中min表示最小值; mean表示平均值;[+/-sd]表示標準差(standard deviation) ,也稱均方差(mean square error),這個概念在中學的數學課上學過,表示資料的離散程度,數值越大表示資料越分散,系統響應時間越不穩定。 median表示中位數; max當然就是表示最大值了。

//需要注意的是表中的total並不等於前三行資料相加,因為前三行的資料並不是在同乙個請求中採集到的,可能某個請求的網路延遲最短,但是系統處理時間又是最長的呢。所以total是從整個請求所需要的時間的角度來統計的。這裡可以看到最慢的乙個請求花費了195ms,這個資料可以在下面的表中得到驗證。

percentage of the requests served within a certain time (ms)

50%    106

66%    109

75%    111

80%    114

90%    118

95%    154

98%    176

99%    195

100%    195 (longest request)

//這個表第一行表示有50%的請求都是在106ms內完成的,可以看到這個值是比較接近平均系統響應時間(第乙個time per request:       109.287 [ms] (mean) )

以此類推,90%的請求是小於等於118ms的。剛才我們看到響應時間最長的那個請求是195ms,那麼顯然所有請求(100%)的時間都是小於等於195毫秒的,也就是表中最後一行的資料肯定是時間最長的那個請求(longest request)。

用Apache 裡面的ab做乙個簡單的壓力測試

我用的是xampp環境包.d xampp apache bin 進入這路徑,找到ab.exe 嘗試雙擊開啟ab.exe 但不能如願,這兩個都是乙個壓力的測試軟體,是apache自帶的 好了,現在得用cmd開啟一下 當出現了一些幫助資訊的時候,就說明是啟動成功了,如下圖 現在來測試乙個簡單的頁面,如p...

apache的AB測試詳解

apache自帶的測試工具ab apache benchmark 在apache的bin目錄。格式 ab options http hostname port path 引數 n requests number of requests to perform 在測試會話中所執行的請求個數。預設時,僅執...

apache的ab壓力測試

1.opt下面解壓 httpd 2.2.29.tar.gz 2.根目錄 下 mkdir p usr local web apache 3.opt下進入httpd 2.2.29資料夾 cd httpd 2.2.29 4.安裝 configure prefix usr local web apache ...