ab效能分析工具

2021-09-28 11:11:15 字數 4519 閱讀 1089

ab -n 10000 -c 800
引數說明:

-n 總請求數次數

-c 併發次數

-p: post引數文件路徑

-t: header頭內容型別

this is apachebench, version 2.3 <

$revision

: 1430300 $>

licensed to the apache software foundation,

benchmarking 192.168.1.128 (be patient)

completed 1000 requests

completed 2000 requests

completed 3000 requests

completed 4000 requests

completed 5000 requests

completed 6000 requests

completed 7000 requests

completed 8000 requests

completed 9000 requests

completed 10000 requests

finished 10000 requests

server software: nginx/1.16.1

server hostname: 192.168.1.128

server port: 80

document path: /

document length: 257 bytes

concurrency level: 800

time taken for tests: 4.526 seconds

complete requests: 10000

failed requests: 0

write errors: 0

total transferred: 4900000 bytes

html transferred: 2570000 bytes

requests per second: 2209.36 [

#/sec] (mean)

time per request: 362.096 [ms]

(mean)

time per request: 0.453 [ms]

(mean, across all concurrent requests)

transfer rate: 1057.21 [kbytes/sec] received

connection times (ms)

min mean[+/-sd] median max

connect: 0 81 291.8 0 3009

processing: 25 144 453.4 43 3265

waiting: 2 143 453.5 43 3265

total: 30 225 664.0 43 4268

percentage of the requests served within a certain time

(ms)

50% 43

66% 45

75% 47

80% 142

90% 242

95% 1246

98% 3038

99% 4224

100% 4268 (longest request)

1、安裝

2、 檢測

ab -v

3、 ab引數說明

有關ab命令的使用,我們可以通過幫助命令進行檢視。如下:

ab --help

-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設定屬性的字串。

-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標記可以抑制這些資訊。

4、ab效能指標

在進行效能測試過程中有幾個指標比較重要:

1、吞吐率(requests per second)

伺服器併發處理能力的量化描述,單位是reqs/s,指的是在某個併發使用者數下單位時間內處理的請求數。某個併發使用者數下單位時間內能處理的最大請求數,稱之為最大吞吐率。

記住:吞吐率是基於併發使用者數的。這句話代表了兩個含義:

a、吞吐率和併發使用者數相關

b、不同的併發使用者數下,吞吐率一般是不同的

計算公式:總請求數/處理完成這些請求數所花費的時間,即

request per second=complete requests/time taken for tests

必須要說明的是,這個數值表示當前機器的整體效能,值越大越好。

2、併發連線數(the number of concurrent connections)

併發連線數指的是某個時刻伺服器所接受的請求數目,簡單的講,就是乙個會話。

3、併發使用者數(concurrency level)

要注意區分這個概念和併發連線數之間的區別,乙個使用者可能同時會產生多個會話,也即連線數。在http/1.1下,ie7支援兩個併發連線,ie8支援6個併發連線,firefox3支援4個併發連線,所以相應的,我們的併發使用者數就得除以這個基數。

4、使用者平均請求等待時間(time per request)

time per request=time taken for tests/(complete requests/concurrency level)

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

time taken for/testscomplete requests

可以看到,它是吞吐率的倒數。

time per request/concurrency level

5、ab實際使用

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

ab -c 10 -n 100
-c10表示併發使用者數為10

-n100表示請求總數為100

表示請求的目標url

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

效能測試工具ab

簡介 ab全名是apachebench,是apache自帶的一款模擬http請求的web伺服器效能測試工具,安裝apache的時候會預設幫我們裝上。它非常容易使用,完全可以模擬各種條件下的各種請求。乙個簡單的例子 我們使用ab工具寫乙個簡單的例子,執行命令 ab n 100 c 10 這個命令的意思...

效能工具ab安裝及使用

簡介 ab全稱為 apache bench ab是apache超文字傳輸協議 http 的效能測試工具。其設計意圖是描繪當前所安裝的apache的執行效能,主要是顯示你安裝的apache每秒可以處理多少個請求。安裝 linux環境下,執行命令 安裝ab 檢查是否安裝成功 ab v 執行ab v,顯示...

mysql 效能分析 mysql效能分析工具

一 expalin 在sql語句之前加上explain關鍵字就可以獲取這條sql語句執行的計畫 那麼返回的這些欄位是什麼呢?我們先關心一下比較重要的幾個字段 1.select type 查詢型別 1 簡單查詢,沒有union和子查詢 2 priamry 主查詢,有union或子查詢的最外層查詢 3 ...