在 Apache 有个叫 ab(ApacheBench) 的程序, 此程序是专门用在做压力测试用的软件. ApacheBench(ab) 用来测试 apache 执行效率,可以用来测试网站的压力工具.
ab 参数
ab 参数: Usage: /usr/sbin/ab [options] [http://]hostname[:port]/path
Options are:
§ -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 containg data to POST
§ -T content-type Content-type header for POSTing
§ -v verbosity How much troubleshooting info to print
§ -w Print out results in HTML tables
§ -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: zop'
§ 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
§ -s Use httpS instead of HTTP (SSL)
§ -h Display usage information (this message)
ab 使用
ab使用范例:
要执行 1000 次的 connection, 20 次的 concurrent (并行, 同时): 语法: ab -n 1000 -c 20 http://localhost/
产生出来的结果. 要注意的是以下几个:
§ Time taken for tests: 总共执行花了多久的时间.(以上 1000 次共多久)
§ Requests per second: 每秒平均可以处理多少个 connection.
下面是一个在Windows Azure虚拟机上做的测试,虚拟机性能不怎么样呀(和这个测试相比 ASP.NET Web Api vs Node.js Benchmark, Take 2)。
Microsoft Windows [Version 6.2.9200]
(c) 2012 Microsoft Corporation. All rights reserved.
D:\runnable\test>ab -n 100000 -c 80 -p test.dat -T 'application/json' http://loc
alhost/
This is ApacheBench, Version 2.3
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Server Software: Microsoft-IIS/8.0
Server Hostname: localhost
Server Port: 80
Document Path: /
Document Length: 5269 bytes
Concurrency Level: 80
Time taken for tests: 112.004 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Non-2xx responses: 100000
Total transferred: 553000000 bytes
Total POSTed: 62200000
HTML transferred: 526900000 bytes
Requests per second: 892.83 [#/sec] (mean)
Time per request: 89.603 [ms] (mean)
Time per request: 1.120 [ms] (mean, across all concurrent requests)
Transfer rate: 4821.62 [Kbytes/sec] received
542.32 kb/s sent
5363.94 kb/s total
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 1.3 0 16
Processing: 0 89 65.5 63 532
Waiting: 0 89 65.5 63 532
Total: 0 89 65.5 63 532
Percentage of the requests served within a certain time (ms)
50% 63
66% 78
75% 94
80% 94
90% 141
95% 235
98% 344
99% 407
100% 532 (longest request)
相关文章 :
Apache自带的压力测试工具——ab初体验
ASP.NET Web Api vs Node.js Benchmark, Take 2