ab

Apache服務器的性能測試工具

安裝

若系統未安裝,使用以下命令安裝

1# Ubuntu
2sudo apt-get install apache2-utils
3
4# Centos
5yum install httpd-tools

補充說明

ab命令 是一個測試你 Apache http 服務器的工具,你可以通過這個工具,指定一個單位時間內向 apache 發出的請求數量來看看你的 Apache 和機器配合的性能如何。

語法

1ab [ -A auth-username:password ] [ -c concurrency ] [ -C cookie-name=value
2] [ -d ] [ -e csv-file ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [
3-i  ]  [  -k  ]  [  -n  requests  ] [ -p POST-file ] [ -P proxy-auth-user‐
4name:password ] [ -q ] [ -s ] [ -S ] [ -t timelimit ] [ -T content-type  ]
5[  -v verbosity] [ -V ] [ -w ] [ -x <table>-attributes ] [ -X proxy[:port]
6]  [  -y  <tr>-attributes  ]  [  -z   <td>-attributes   ]   [http://]host‐
7name[:port]/path

選項

 1-A auth-username:password
 2      #  支持基本的驗證證書,用戶名和密碼之間使用"冒號"                    :
 3      # 分隔開,ab將以明文方式傳送過去.不管服務器是不是需要
 4      # ,也就是說你的服務器需要支持401認證.
 5
 6-c concurrency
 7      # 同時向服務器端發送的請求數目,默認狀態下是一次 只執行一個http請求.
 8
 9-C cookie-name=value
10      # Add a Cookie: line to the request. The argument is typically in the
11      # form of a name=value pair. This field is repeatable.
12
13-d    #  Do not display  the  "percentage  served  within  XX  [ms]  table".
14      # (legacy support).
15
16-e csv-file
17      # Write  a  Comma  separated value (CSV) file which contains for each
18      # percentage (from 1% to 100%) the time (in milli seconds) it took to
19      # serve  that percentage of the requests. This is usually more useful
20      # than the 'gnuplot' file; as the results are already 'binned'.
21
22-g gnuplot-file
23      # Write all measured values out as a 'gnuplot' or TSV  (Tab  separate
24      # values)  file.  This file can easily be imported into packages like
25      # Gnuplot, IDL, Mathematica, Igor or even Excell. The labels  are  on
26      # the first line of the file.
27-h    # 顯示使用說明
28-H custom-header
29      # 向請求包追加附加的標題字串.此參數應該是有效的標題         行(header
30      # line)形式,通常使用冒號":"來分隔有效配對 (valid  pair)例如  'Accept-
31      # Encoding: zip/zop;8 bit';
32
33-i    # 使用一個 http 頭(HEAD) 來替換 GET方法.不可以摻入POST 方法
34
35-k    #  允許http      KeepAlive      ;也就是說執行多個請求在一個      http
36      # 會話當中,默認是不允許的也就是no KeepAlive啦;)
37
38-n requests
39      # 執行一次測試會話的時候所發出的請求數目,默認是執行一個單一的請求
40      # 當然了這樣的測試結果也就沒什麼意義了
41
42-p POST-file
43      # 測試程序也就是ab,將向Apache server發送帶有HTTP POST 的請求.
44
45-P proxy-auth-username:password
46      # 當需要通過代理測試一臺 HTTP 服務器的時候而你的代理
47      # 又需要用戶名密碼驗證,這時你可以使用這個選項,同樣
48      # 用戶名與密碼之間使用冒號":"分隔開,ab將之以明文的方式
49      # 發送出去,當然,前提是你的代理是處於407認證狀態的
50
51-q    #  When processing more than 150 requests, ab outputs a progress count
52      # on  stderr  every  10% or 100 requests or so. The -q flag will sup‐
53      # press these messages.
54
55-s    #  When compiled in (ab -h will show you) use the SSL protected  https
56      # rather  than  the  http  protocol. This feature is experimental and
57      # very rudimentary. You probably do not want to use it.
58
59-S    #  Do not display the median and standard deviation values,  nor  dis‐
60      # play  the  warning/error  messages  when the average and median are
61      # more than one or two times the standard deviation  apart.  And  de‐
62      # fault to the min/avg/max values. (legacy support).
63
64-t timelimit
65      #  設置測試的時間的長短,使用這個選項ab將自動設置
66      # 測試請求會話數目爲50000,然後以你設置的時間爲
67      # 固定週期.默認狀態下是沒有時限的,也就是直到完成
68      # 你所設置的請求數目爲止.
69
70-T content-type
71      # 內容類型標頭,使用在POST數據的時候.
72
73-v verbosity
74      # 設置冗餘級別,4級打印出每個請求標頭的詳細信息,
75      # 3級打印出回應代碼(例如,404,200),2級打印出警告 信息和指示消息
76
77-V    # 顯示版本號並且退出
78-w    # 打印輸出結果到HTML表中. 默認的表是兩列n行白底黑框
79
80-x <table>-attributes
81      # 使用字串來描述表的屬性,該屬性字串應該插入到<table 這裏 >
82
83-X proxy[:port]
84      # Use a proxy server for the requests.
85
86-y <tr>-attributes
87      # 用於生成html表格每行的屬性名 (<tr>)
88
89-z <td>-attributes
90      # 用於生成html表格每列的屬性名 (<td>)

參數

主機:被測試主機。

實例

1# 10個併發, 請求500次
2ab -c 10 -n 500 https://www.qq.com/

來源:https://github.com/jaywcjlove/linux-command

最後修改於: Wednesday, January 31, 2024

相關文章:

翻譯: