apche的AB測試詳解

2021-05-13 03:22:58 字數 4697 閱讀 1564

apache自帶的測試工具ab(apache benchmark).在apache的bin目錄。

格式: ./ab [options] [http://]hostname[:port]/path

引數:-n requests number of requests to perform

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

-c concurrency number of multiple requests to make

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

-t timelimit seconds to max. wait for responses

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

-p postfile file containing data to post

//包含了需要post的資料的檔案.

-t content-type content-type header for posting

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

-v verbosity how much troubleshooting info to print

//設定顯示資訊的詳細程度 - 4或更大值會顯示頭資訊, 3或更大值可以顯示響應**(404, 200等), 2或更大值可以顯示警告和其他資訊。 -v 顯示版本號並退出。

-w print out results in html tables

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

-i use head instead of get

// 執行head請求,而不是get。

-x attributes string to insert as table attributes

-y attributes string to insert as tr attributes

-z attributes string to insert as td or th attributes

-c attribute add cookie, eg. 'apache=1234. (repeatable)

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

-h attribute add arbitrary header line, eg. 'accept-encoding: gzip' inserted after all normal header lines. (repeatable)

-a attribute add basic www authentication, the attributes

are a colon separated username and password.

-p attribute add basic proxy authentication, the attributes

are a colon separated username and password.

//-p proxy-auth-username:password 對乙個中轉**提供basic認證信任。使用者名稱和密碼由乙個:隔開,並以base64編碼形式傳送。無論伺服器是否需要(即, 是否傳送了401認證需求**),此字串都會被傳送。

//-attributes 設定 屬性的字串. 缺陷程式中有各種靜態宣告的固定長度的緩衝區。另外,對命令列引數、伺服器的響應頭和其他外部輸入的解析也很簡單,這可能會有不良後果。它沒有完整地實現 http/1.x; 僅接受某些'預想'的響應格式。 strstr(3)的頻繁使用可能會帶來效能問題,即, 你可能是在測試ab而不是伺服器的效能。

引數很多,一般我們用 -c 和 -n 引數就可以了. 例如:

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

//平台apache 版本2.0.54

server hostname: 127.0.0.1

//伺服器主機名

server port: 80

//伺服器端口

document path: /index.html.zh-cn.gb2312

//測試的頁面文件

document length: 1018 bytes

//文件大小

concurrency level: 1000

//併發數

time taken for tests: 8.188731 seconds

//整個測試持續的時間

complete requests: 1000

//完成的請求數量

failed requests: 0

//失敗的請求數量

write errors: 0

total transferred: 1361581 bytes

//整個場景中的網路傳輸量

html transferred: 1055666 bytes

//整個場景中的html內容傳輸量

requests per second: 122.12 [#/sec] (mean)

//大家最關心的指標之一,相當於

lr 中的

每秒事務數

,後面括號中的

mean

表示這是乙個平均值

time per request: 8188.731 [ms] (mean)

//大家最關心的指標之二,相當於

lr 中的

平均事務響應時間

,後面括號中的

mean

表示這是乙個平均值

time per request: 8.189 [ms] (mean, across all concurrent requests)

//每個請求實際執行時間的平均值

transfer rate: 162.30 [kbytes/sec] received

//平均每秒網路上的流量,可以幫助排除是否存在網路流量過大導致響應時間延長的問題

connection times (ms)

min mean[+/-sd] median max

connect: 4 646 1078.7 89 3291

processing: 165 992 493.1 938 4712

waiting: 118 934 480.6 882 4554

total: 813 1638 1338.9 1093 7785

//網路上消耗的時間的分解,各項資料的具體演算法還不是很清楚

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

50% 1093

66% 1247

75% 1373

80% 1493

90% 4061

95% 4398

98% 5608

99% 7368

100% 7785 (longest request)

//整個場景中所有請求的響應情況。在場景中每個請求都有乙個響應時間,其中50%的使用者響應時間小於1093 毫秒,60% 的使用者響應時間小於1247 毫秒,最大的響應時間小於7785 毫秒

由於對於併發請求,cpu實際上並不是同時處理的,而是按照每個請求獲得的時間片逐個輪轉處理的,所以基本上第乙個time per request時間約等於第二個time per request時間乘以併發請求數

apache的AB測試詳解

apache自帶的測試工具ab apache benchmark 在apache的bin目錄。格式 ab options http hostname port path 引數 n requests number of requests to perform 在測試會話中所執行的請求個數。預設時,僅執...

ab測試工具詳解

n個請求要執行的請求數 c併發性一次發出的多個請求的數量 t timelimit秒 以秒為單位 花在基準測試上這意味著 n 50000 s超時秒數 以秒為單位 等待每個回應預設值是30秒 b windowsize tcp傳送 接收緩衝區的大小,以位元組為單位 b位址建立傳出連線時要繫結的位址 p p...

ab壓力測試工具詳解

yum install httpd toolsab n 2000 c 2 你的url n 總的請求數 c 併發數 k 是否開啟長連線 time taken for tests 髮費的總時間 requests per second 每秒請求數 總請求數除總時間 上面的time per request ...