一、介绍
ab是apache自带的压力测试工具,非常实用,他不仅能对apache服务器进行压力测试,还可以对 nginx、tomcat、IIS等服务器进行测试
二、原理
ab命令会创建多个并发访问县城,模拟多个访问者同时对某一URL地址进行访问,他的测试目标是基于URL的。他既可以测试负载压力,也可以测试web服务器的压力
ab命令对发出的负责计算机要求很低,他不会占用很高CPU也不会占用很高内存,但会给服务器造成很高的负载。其原理类似DDos攻击,所以使用时需要注意,可能造成目标服务器资源耗尽,严重时导致死机。
三、ab的安装
- ab的安装非常简单,如果是源码安装apache的话,那就更简单了。apache安装完毕后ab命令存放在apache安装目录的bin目录下。如下: /usr/local/apache2/bin
- 如果apache 是通过yum的RPM包方式安装的话,ab命令默认存放在/usr/bin目录下。如下:
- 可以通过 which ab 来查看是否安装了ab,以及ab的位置
- ab -V:检测是否安装ab以及版本信息
四、参数说明
bash-3.2# ab -he
Usage: ab [options] [http[s]://]hostname[:port]/path
Options are:
-n requests Number of requests to perform
-c concurrency Number of multiple requests to make at a time
-t timelimit Seconds to max. to spend on benchmarking
This implies -n 50000
-s timeout Seconds to max. wait for each response
Default is 30 seconds
-b windowsize Size of TCP send/receive buffer, in bytes
-B address Address to bind to when making outgoing connections
-p postfile File containing data to POST. Remember also to set -T
-u putfile File containing data to PUT. Remember also to set -T
-T content-type Content-type header to use for POST/PUT data, eg.
'application/x-www-form-urlencoded'
Default is 'text/plain'
-v verbosity How much troubleshooting info to print
-w Print out results in HTML tables
-i
-n requests Number of requests to perform
-c concurrency Number of multiple requests to make at a time
-t timelimit Seconds to max. to spend on benchmarking
This implies -n 50000
-s timeout Seconds to max. wait for each response
Default is 30 seconds
-b windowsize Size of TCP send/receive buffer, in bytes
-B address Address to bind to when making outgoing connections
-p postfile File containing data to POST. Remember also to set -T
-u putfile File containing data to PUT. Remember also to set -T
-T content-type Content-type header to use for POST/PUT data, eg.
'application/x-www-form-urlencoded'
Default is 'text/plain'
-v verbosity How much troubleshooting info to print
-w Print out results in HTML tables
-i