apachebench的簡單使用

2021-09-08 10:47:27 字數 4813 閱讀 7217

apachebench的簡單使用

2013-03-08 15:48:47

分類: linux

apachebench是apache 附帶的乙個小工具,專門用於http server 的benchmark testing,可以同時模擬多個併發請求。

需要針對web做壓力測試,所以簡單學習了一下,並做個記錄。

使用的環境是centos5.5,使用yum安裝apache,ab工具在/usr/bin目錄下:

[root@nginx1 ~]# cat /etc/redhat-release

centos release 5.5 (final)

[root@nginx1 ~]# ls /usr/bin/ab*

/usr/bin/ab

ab的基本格式:

[root@nginx1 ~]# ab -n 100 -c 10                  ###-n:發出的請求數  -c:每次的併發數

server software: bws/1.0                   ###伺服器的資訊

server hostname: www.baidu.com             ###網域名稱

server port: 80                            ###連線的埠

document path: /                           ###請求的uri

document length: 10530 bytes               ###第一次返回文件的大小。如果文件大小在測試的時候改變了,那麼這個響應會視為乙個錯誤。

concurrency level: 10                      ###併發數

time taken for tests: 29.32944 seconds     ###開始到結束的時間

complete requests: 100                     ###成功的請求數

failed requests: 42                        ###失敗的請求數

(connect: 0, length: 42, exceptions: 0)    ###詳細的多少個連線失敗,長度異常,讀取失敗

write errors: 0                            ###在傳送的時候失敗的次數

total transferred: 1131908 bytes           ###從伺服器接收的位元組數。這是明確的網路傳送位元組。

html transferred: 1084140 bytes            ###html內容傳輸量

requests per second: 3.44 [#/sec] (mean)   ###每秒請求數

time per request: 2903.294 [ms] (mean)     ###每個併發的時間

time per request: 290.329 [ms] (mean, across all concurrent requests)   ###個人理解是每個併發中每個請求的時間

transfer rate: 38.06 [kbytes/sec] received ###每秒的網路流量

connection times (ms)             

min mean[+/-sd] median max

connect: 37 1003 809.6 898 4056                     ###socket發出請求到建立連線所花的時間。

processing: 253 1713 861.2 1800 5643                ###連線建立後,直到http全部接收所用的時間。

waiting: 42 759 711.5 715 4886                      ###傳送http完後,到接到第乙個byte所等待的時間。

total: 336 2717 1248.4 2739 6655                    ###conn+processing

###下面的內容為整個場景中所有請求的響應情況。在場景中每個請求都有乙個響應時間,其中50%的使用者響應時間小於3064 毫秒,60 %的使用者響應時間小於3094 毫秒,最大的響應時間小於3184 毫秒

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

50% 2739

66% 3017

75% 3141

80% 3187

90% 3998

95% 5607

98% 6095

99% 6655

100% 6655 (longest request)

更多引數:

-a auth-username:password

有的請求需要使用者名稱和密碼進行驗證:(例如:401 驗證需求).

-b windowsize

tcp 傳送和接收的buffer大小,單位是 bytes

-c concurrency

併發數,同一時間有多少請求發出去,預設是1。

-c cookie-name=value

加上cookie:以「 name=value 」的形式,可以重複 -c xx1=yy1 -c xx2=yy2。

-d 不展示"percentage served within xx [ms] table".

-e csv-file

寫乙個逗號分隔的csv檔案,包含每個百分比(from 1% to 100%)伺服器執行的時間(毫秒),這個檔案一般比'gunplot'有用。

-f protocol

指定 ssl/tls 協議 (ssl2, ssl3, tls1, or all).

-g gnuplot-file

寫所有有用的資訊到tsv(tab separate values)檔案,可以輕鬆匯入excel等裡面,label在檔案第一行。

-h 展示幫助資訊

-h custom-header

加入額外的頭資訊。以冒號分割,例如("accept-encoding: zip/zop;8bit")

-i 傳送get請求

-k 開啟http的keepalive功能。在乙個http會話裡執行多個請求。預設不開啟。

-n requests

要執行的請求校驗次數。預設請求一次,請求一次的結果不能代表校驗結果,不準確。

-p post-file

包含post資料檔案

-p proxy-auth-username:password

支援基本auth**路由驗證。在(http code : 407 的時候需要)

-q 當程式有150個請求,輸出以每10%或100個來顯示。-q 用來取消這些資訊。

-r 在socket錯誤的時候不退出。

-s 如果用在ssl協議,功能還處在試驗階段,你不需要用它。

-s 不展示終止和標準值,也不展示警告資訊。

-t timelimit

校驗花費的最大時間,內部設定-n 50000 次。使用這個選項在特定時間內測試。預設不開啟

-t content-type

-u put-file

put 的檔案,記著加上-t

-v verbosity

設定輸出等級, 4 輸出頭資訊,3 輸出響應碼(404,200) 2 輸出警告和資訊

-v 展示版本,然後退出。

-w 輸出結果到html裡的table,預設兩列,白色背景。

-x -attributes

string to use as attributes for . attributes are inserted .

-x proxy[:port]

使用**。

-y -attributes

設定屬性到 .

-z -attributes

設定屬性到 .

-z ciphersuite

指定 ssl/tls 密碼套件 (see openssl ciphers).

乙個例子了解apacheBench的簡單使用方法

apachebench,即ab,apache http server benchmarking tool,是apache提供的衡量http伺服器效能的乙個簡單的小工具,用來對apache伺服器進行壓力測試,主要的衡量指標就是伺服器每秒能夠處理請求的數目,同時支援併發請求。下面舉個例子來分析ab 執行...

UICollectionView的簡單使用

所屬controller要遵循三個協議 uicollectionviewdatasource,uicollectionviewdelegate,uicollectionviewdelegateflowlayout uicollectionviewflowlayout flowlayout uicol...

BGAQRCode Android的簡單使用

compile com.google.zxing core 3.2.1 xmlns android 這句是使用選擇器框架時用到的 xmlns tools package com.huaqiang.zxingdemo 選擇框架用到 android name android.permission.cam...