ab壓力測試工具

2021-09-24 09:43:52 字數 3253 閱讀 1704

系統centos6.8

1、安裝ab

直接安裝好阿帕奇同時也安裝好了ab工具

不想安裝阿帕奇時可使用如下命令

2、ab命令引數解釋

-n  在測試會話中所執行的請求個數。預設時,僅執行乙個請求。

-c  一次產生的請求個數。預設是一次乙個。

-t  測試所進行的最大秒數。其內部隱含值是-n 50000,它可以使對伺服器的測試限制在乙個固定的總

時間以內。預設時,沒有時間限制。

-p  包含了需要post的資料的檔案。

-p  對乙個中轉**提供basic認證信任。使用者名稱和密碼由乙個:隔開,並以base64編碼形式傳送。無論伺服器是否

需要(即, 是否傳送了401認證需求**),此字串都會被傳送。

-t  post資料所使用的content-type頭資訊。

-v  設定顯示資訊的詳細程度-4或更大值會顯示頭資訊,3或更大值可以顯示響應**(404,200等),2或更大值可以顯示警

告和其他資訊。

-v  顯示版本號並退出。

-w  以html表的格式輸出結果。預設時,它是白色背景的兩列寬度的一張表。

-i  執行head請求,而不是get。

-x  設定屬性的字串。

-x  對請求使用**伺服器。

-y  設定屬性的字串。

-z  設定屬性的字串。

-c  對請求附加乙個cookie:行。其典型形式是name=value的乙個引數對,此引數可以重複。

-h  對請求附加額外的頭資訊。此引數的典型形式是乙個有效的頭資訊行,其中包含了以冒號分隔的字段和值的

對(如,"accept-encoding:zip/zop;8bit")。

-a  對伺服器提供basic認證信任。使用者名稱和密碼由乙個:隔開,並以base64編碼形式傳送。無論伺服器是否需要(即,是

否傳送了401認證需求**),此字串都會被傳送。

-h  顯示使用方法。

-d  不顯示"percentage served within xx [ms] table"的訊息(為以前的版本提供支援)。

-e  產生乙個以逗號分隔的(csv)檔案,其中包含了處理每個相應百分比的請求所需要(從1%到100%)的相應百分比的(以

微妙為單位)時間。由於這種格式已經「二進位製化」,所以比'gnuplot'格式更有用。

-g  把所有測試結果寫入乙個'gnuplot'或者tsv(以tab分隔的)檔案。此檔案可以方便地匯入到gnuplot,idl,mathematica

,igor甚至excel中。其中的第一行為標題。

-i  執行head請求,而不是get。

-k  啟用http keepalive功能,即在乙個http會話中執行多個請求。預設時,不啟用keepalive功能。

-q  如果處理的請求數大於150,ab每處理大約10%或者100個請求時,會在stderr輸出乙個進度計數。此-q標記可以抑

制這些資訊。

3、ab測試結果內容解析

[root@centos7 ~]#ab -c 10 -n 100

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

-n    100表示要請求總數為100

表示請求的目標url

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

[root@centos7 ~]#ab -c 10 -n 100

benchmarking 47.93.96.25 (be patient).....done

server software:        apache/2.4.29  ##apache版本 

server hostname:        ip位址   ##請求的機子 

server port:            80  ##請求埠

document path:          index.php

document length:        18483 bytes  ##頁面長度

concurrency level:      10  ##併發數

time taken for tests:   25.343 seconds  ##共使用了多少時間

complete requests:      100  ##請求數

failed requests:        11  ##失敗請求

(connect: 0, receive: 0, length: 11, exceptions: 0)

total transferred:      1873511 bytes  ##總共傳輸位元組數,包含http的頭資訊等

html transferred:       1848311 bytes  ##html位元組數,實際的頁面傳遞位元組數

requests per second:    3.95 [#/sec] (mean)  ##每秒多少請求,這個是非常重要的引數數值,伺服器的吞吐量

time per request:       2534.265 [ms] (mean)  ##使用者平均請求等待時間

time per request:       253.426 [ms] (mean, across all concurrent requests)  ##伺服器平均處理時間,

transfer rate:          72.19 [kbytes/sec] received  ##每秒獲取的資料長度

connection times (ms)

min  mean[+/-sd] median   max

connect:        0    8   3.9     10      13

processing:  1222 2453 322.6   2520    3436

waiting:     1175 2385 320.4   2452    3372

total:       1222 2461 322.5   2528    3444

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

50%   2528  ## 50%的請求在25ms內返回 

66%   2534  ## 60%的請求在26ms內返回 

75%   2538

80%   2539

90%   2545

95%   2556

98%   3395

99%   3444

100%   3444 (longest request)

ab壓力測試工具

即ab的主要邏輯包含在test方法中。test方法首先進行了一些全域性的初始化工作。其中,最重要的乙個資料結構是陣列struct connection con c 代表同時存在的c個客戶端連線。struct connection的結構如下 struct connection start connec...

AB壓力測試工具

吞吐率 requests per second 概念 伺服器併發處理能力的量化描述,單位是reqs s,指的是某個併發使用者數下單位時間內處理的請求數。某個併發使用者數下單位時間內能處理的最大請求數,稱之為最大吞吐率。計算公式 總請求數 處理完成這些請求數所花費的時間,即 request per s...

ab壓力測試工具

1 用法1 之前需要加上 ab c 10 n 100 ab c 10 n 100 c10表示併發使用者數為10 可以理解為開啟了10個工作執行緒或程序 n100表示請求總數為100 2 用法2加上user agent 從日誌上面可以看到user agent變成了wuhan agent 125 非正常...