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