apache服務(wù)器壓力測(cè)試工具
- 分類:博文-IT資訊
- 發(fā)布于 2016年8月28日 星期日 13:06
- 作者:Super User
- 點(diǎn)擊數(shù):5132
?上篇我們已經(jīng)學(xué)會(huì)并建立了自己的網(wǎng)站,鉭我們的服務(wù)器硬件和網(wǎng)絡(luò)帶寬到底能支持多少用戶訪問(wèn),如何知道系統(tǒng)的運(yùn)行性能呢,這里介紹下Apache里面有自帶免費(fèi)的性能測(cè)試工具Ab(Apache Bench),在Apache的bin目錄下,它能模擬多個(gè)并發(fā)請(qǐng)求,也就是說(shuō)它主要是用來(lái)測(cè)試你的apache每秒能處理多少請(qǐng)求的。
?命令語(yǔ)法
ab [options] [http[s]://]hostname[:port]/path
參數(shù)選項(xiàng)
-A auth-username:password
對(duì)服務(wù)器提供BASIC認(rèn)證信任。 用戶名和密碼由一個(gè):隔開,并以base64編碼形式發(fā)送。 無(wú)論服務(wù)器是否需要(即是否發(fā)送了401認(rèn)證需求代碼),此字符串都會(huì)被發(fā)送。
-c concurrency
一次產(chǎn)生的請(qǐng)求個(gè)數(shù)。默認(rèn)是一次一個(gè)。
-C cookie-name=value
對(duì)請(qǐng)求附加一個(gè)Cookie:行。 其典型形式是name=value的一個(gè)參數(shù)對(duì)。 此參數(shù)可以重復(fù)。
-d
不顯示”percentage served within XX [ms] table”的消息(為以前的版本提供支持)。
-e csv-file
產(chǎn)生一個(gè)以逗號(hào)分隔的(CSV)文件, 其中包含了處理每個(gè)相應(yīng)百分比的請(qǐng)求所需要(從1%到100%)的相應(yīng)百分比的(以微妙為單位)時(shí)間。 由于這種格式已經(jīng)“二進(jìn)制化”,所以比’gnuplot’格式更有用。
-g gnuplot-file
把所有測(cè)試結(jié)果寫入一個(gè)’gnuplot’或者TSV (以Tab分隔的)文件。 此文件可以方便地導(dǎo)入到Gnuplot, IDL, Mathematica, Igor甚至Excel中。 其中的第一行為標(biāo)題。
-h
顯示使用方法。
-H custom-header
對(duì)請(qǐng)求附加額外的頭信息。 此參數(shù)的典型形式是一個(gè)有效的頭信息行,其中包含了以冒號(hào)分隔的字段和值的對(duì) (如, “DontTrackMeHere: zip/zop;8bit”).
-i
執(zhí)行HEAD請(qǐng)求,而不是GET。
-k
啟用HTTP KeepAlive功能,即, 在一個(gè)HTTP會(huì)話中執(zhí)行多個(gè)請(qǐng)求。 默認(rèn)時(shí),不啟用KeepAlive功能.
-n requests
在測(cè)試會(huì)話中所執(zhí)行的請(qǐng)求個(gè)數(shù)。 默認(rèn)時(shí),僅執(zhí)行一個(gè)請(qǐng)求,但通常其結(jié)果不具有代表意義。
-p POST-file
包含了需要POST的數(shù)據(jù)的文件.
-P proxy-auth-username:password
對(duì)一個(gè)中轉(zhuǎn)代理提供BASIC認(rèn)證信任。 用戶名和密碼由一個(gè):隔開,并以base64編碼形式發(fā)送。 無(wú)論服務(wù)器是否需要(即, 是否發(fā)送了401認(rèn)證需求代碼),此字符串都會(huì)被發(fā)送。
-q
如果處理的請(qǐng)求數(shù)大于150, ab每處理大約10%或者100個(gè)請(qǐng)求時(shí),會(huì)在stderr輸出一個(gè)進(jìn)度計(jì)數(shù)。 此-q標(biāo)記可以抑制這些信息。
-s
用于編譯中(ab -h會(huì)顯示相關(guān)信息)使用了SSL的受保護(hù)的https, 而不是http協(xié)議的時(shí)候。此功能是實(shí)驗(yàn)性的,也是很簡(jiǎn)陋的。最好不要用。
-S
不顯示中值和標(biāo)準(zhǔn)背離值, 而且在均值和中值為標(biāo)準(zhǔn)背離值的1到2倍時(shí),也不顯示警告或出錯(cuò)信息。 默認(rèn)時(shí),會(huì)顯示 最小值/均值/最大值等數(shù)值。(為以前的版本提供支持).
-t timelimit
測(cè)試所進(jìn)行的最大秒數(shù)。其內(nèi)部隱含值是-n 50000。 它可以使對(duì)服務(wù)器的測(cè)試限制在一個(gè)固定的總時(shí)間以內(nèi)。默認(rèn)時(shí),沒(méi)有時(shí)間限制。
-T content-type
POST數(shù)據(jù)所使用的Content-type頭信息。
-v verbosity
設(shè)置顯示信息的詳細(xì)程度 – 4或更大值會(huì)顯示頭信息, 3或更大值可以顯示響應(yīng)代碼(404, 200等), 2或更大值可以顯示警告和其他信息。
-V
顯示版本號(hào)并退出。
-w
以HTML表的格式輸出結(jié)果。默認(rèn)時(shí),它是白色背景的兩列寬度的一張表。
-x <table>-attributes
設(shè)置<table>屬性的字符串。 此屬性被填入<table 這里 >.
-X proxy[:port]
對(duì)請(qǐng)求使用代理服務(wù)器。
-y <tr>-attributes
設(shè)置<tr>屬性的字符串.
-z <td>-attributes
設(shè)置屬性的字符串
舉例說(shuō)明
這么多參數(shù),其實(shí)你大可不必?fù)?dān)心,最基本的關(guān)心兩個(gè)選項(xiàng) -c -n
ab -c 100 -n 10000 http://zsldwz.cn/info
代碼說(shuō)明
-c 100 即:每次請(qǐng)求數(shù),默認(rèn)不能超過(guò)1024個(gè),否則需要修改系統(tǒng)進(jìn)程限制。
-n 10000 即: 1個(gè)請(qǐng)求的并發(fā)連接數(shù),默認(rèn)最大不能超過(guò)50000。
測(cè)試的url后面要帶上/
返回代碼說(shuō)明
下面是同時(shí)處理20個(gè)請(qǐng)求并運(yùn)行10次zsldwz.cn/info/index.php文件的返回代碼。
$ab -c 10 -n 20 http://zsldwz.cn/info/index.php
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking zsldwz.cn (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
//apache的版本信息
Server Software: Apache/2.4.7
//服務(wù)器主機(jī)名
Server Hostname: zsldwz.cn
//服務(wù)器端口
Server Port: 80
//測(cè)試頁(yè)面路徑
Document Path: /info
//文檔大小
Document Length: 314 bytes
//并發(fā)數(shù)
Concurrency Level: 100
//測(cè)試持續(xù)時(shí)間
Time taken for tests: 22.860 seconds
//完成請(qǐng)求數(shù)量
Complete requests: 10000
//失敗請(qǐng)求數(shù)量
Failed requests: 0
//寫入失敗數(shù)量
Write errors: 0
//網(wǎng)絡(luò)傳輸總量
Total transferred: 5400000 bytes
//html內(nèi)容傳輸量
HTML transferred: 3140000 bytes
//平均每秒事務(wù)數(shù)
Requests per second: 437.45 [#/sec] (mean)
//平均事務(wù)響應(yīng)時(shí)間
Time per request: 228.598[ms] (mean)
//每個(gè)請(qǐng)求實(shí)際運(yùn)行時(shí)間平均值
Time per request: 2.286 [ms] (mean, across all concurrent requests)
//平均每秒網(wǎng)絡(luò)上的流量,可以幫助排除是否存在網(wǎng)絡(luò)流量過(guò)大導(dǎo)致響應(yīng)時(shí)間延長(zhǎng)的問(wèn)題
Transfer rate: 230.69 [Kbytes/sec] received
//網(wǎng)絡(luò)上消耗的時(shí)間的分解
Connection Times (ms)
min mean[+/-sd] median max
Connect: 15 95 33.0 95 216
Processing: 56 132 52.9 117 391
Waiting: 54 130 52.8 115 391
Total: 72 228 47.9 219 450
//下面是請(qǐng)求狀況
Percentage of the requests served within a certain time (ms)
50% 219 //50%的童鞋在打開zsldwz.cn響應(yīng)時(shí)間小于219毫秒,下面解釋同理
66% 247
75% 258
80% 263
90% 284
95% 319
98% 360
99% 384
100% 450 (longest request)
Apache ab測(cè)試模擬的還是比較簡(jiǎn)單,其實(shí)還有其它例如http_load 、siege等壓力測(cè)試工具。