Apache ab自帶壓力工具的使用

2021-08-07 15:39:52 字數 3151 閱讀 4003

一、ab原理

ab是apachebench命令的縮寫。

ab的原理:ab命令會建立多個併發訪問執行緒,模擬多個訪問者同時對某一url位址進行訪問。它的測試目標是基於url的,因此,它既可以用來測試apache的負載壓力,也可以測試nginx、lighthttp、tomcat、iis等其它web伺服器的壓力。

ab命令對發出負載的計算機要求很低,它既不會占用很高cpu,也不會占用很多記憶體。但卻會給目標伺服器造成巨大的負載,其原理類似cc攻擊。自己測試使用也需要注意,否則一次上太多的負載。可能造成目標伺服器資源耗完,嚴重時甚至導致宕機。

二、apacheab測試指標

5、伺服器平均請求等待時間(time per request:across all concurrent requests)

三、結果分析

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)。

五、ab實際使用

ab的命令引數比較多,我們經常使用的是-c和-n引數。

ab -c 10 -n 100

-c10表示併發使用者數為10

-n100表示請求總數為100

表示請求的目標url

這行表示同時處理100個請求並執行10次index.php檔案。

Apache ab 壓力併發測試工具

ab,即apache benchmark,只要我們安裝了apache,就能夠在apache的安裝目錄中找到它。它的居住位址是apache安裝目錄 bin ab.exe。現在,我們就來看看如何使用ab.exe來進行壓力測試。在使用之前我們先來學習一下ab的用法。首先,我們輸入cmd開啟dos視窗,然後...

apache ab壓力測試

以前安裝好apache總是不知道該如何測試apache的效能,現在總算找到乙個測試工具了。就是apache自帶的測試工具ab apache benchmark 在apache的bin目錄下。格式 ab options http hostname port path 引數 n requests num...

Apache AB 壓力測試

apache ab 壓力測試 安裝 安裝工具 yum install httpd tools 使用c 併發量 n 請求數結果示例 this is apachebench,version 2.3 revision 655654 licensed to the apache software found...