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...