服務(wù)器負(fù)載太大而影響程序效率也是很常見的,Apache服務(wù)器自帶有一個(gè)叫AB(ApacheBench)的工具,在bin目錄下。使用這個(gè)輕巧的工具我們可以對(duì)服務(wù)器進(jìn)行負(fù)載測(cè)試,
基本用法:
ab -n 全部請(qǐng)求數(shù) -c 并發(fā)數(shù) 測(cè)試url
例:ab -n 1000 -c 50 http://www.test.com/t.php
得到結(jié)果類似于(后面顏色字為中文翻譯):
Server Software: Apache/2.0.55
Server Hostname: localhost
Server Port: 80
Document Path: /1.php
Document Length: 82522 bytes #請(qǐng)求文檔大小
Concurrency Level: 50 #并發(fā)數(shù)
Time taken for tests: 92.76140 seconds#全部請(qǐng)求完成耗時(shí)
Complete requests: 10000 #全部請(qǐng)求數(shù)
Failed requests: 1974 #失敗的請(qǐng)求
(Connect: 0, Length: 1974, Exceptions: 0)
Write errors: 0
Total transferred: 827019400 bytes#總傳輸大小
HTML transferred: 825219400 bytes
Requests per second: 108.61 [#/sec] (mean)#每秒請(qǐng)求數(shù)(平均)
Time per request: 460.381 [ms] (mean)#每次并發(fā)請(qǐng)求時(shí)間(所有并發(fā))
Time per request: 9.208 [ms] (mean, across all concurrent requests) #每一請(qǐng)求時(shí)間(并發(fā)平均)
Transfer rate: 8771.39 [Kbytes/sec] received#傳輸速率
Connection Times (ms)#連接時(shí)間
min mean[+/-sd] median max
Connect(#連接): 0 0 2.1 0 46
Processing(#處理): 31 458 94.7 438 1078
Waiting(#等待): 15 437 87.5 422 938
Total: 31 458 94.7 438 1078
完整用法:
ab[ -Aauth-username:password] [ -cconcurrency] [ -Ccookie-name=value] [ -d] [ -ecsv-file] [ -ggnuplot-file] [ -h] [ -Hcustom-header] [ -i] [ -k] [ -nrequests] [ -pPOST-file] [ -Pproxy-auth-username:password] [ -q] [ -s] [ -S] [ -ttimelimit] [ -Tcontent-type] [ -vverbosity] [ -V] [ -w] [ -x<table>-attributes] [ -Xproxy[:port] ] [ -y<tr>-attributes] [ -z<td>-attributes] [http://]hostname[:port]/path
參數(shù)說明如下:
-n requests Number of requests to perform
-c concurrency Number of multiple requests to make
-t timelimit Seconds to max. wait for responses
-p postfile File containing data to POST
-T content-type Content-type header for POSTing
-v verbosity How much troubleshooting info to print
-w Print out results in HTMLtables
-i Use HEAD instead of 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)
-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.
-X proxy:port Proxyserver and port number to use
-V Print version number and exit
-k Use HTTP KeepAlive feature
-d Do not show percentiles served table.
-S Do not show confidence estimators and warnings.
-g filename Output collected data to gnuplot format file.
-e filename Output CSV file with percentages served
-h Display usage information (this message)