Apache ab性能测试

经验 694 浏览

ab(Apache Benchmark)是Apache附带的一个小工具,它可以模拟多个并发请求,测试服务器的最大承载压力。

首先,确保自己安装了apache服务器。

然后,我们进入apache的bin目录下,输入帮助指令

ab -help

通过使用介绍,我们得知ab的使用方法:

ab [options] [http://]hostname[:port]/path

我们再根据介绍来看一下相关参数(option)的使用:

    -n    即requests,用于指定压力测试总共的执行次数。

    -c    即concurrency,用于指定压力测试的并发数。

    -t    即timelimit,等待响应的最大时间(单位:秒)。

    -b    即windowsize,TCP发送/接收的缓冲大小(单位:字节)。

    -p    即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。

    -u    即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。

    -T    即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain

    -v    即verbosity,指定打印帮助信息的冗余级别。

    -w    以HTML表格形式打印结果。

    -i    使用HEAD请求代替GET请求。

    -x    插入字符串作为table标签的属性。

    -y    插入字符串作为tr标签的属性。

    -z    插入字符串作为td标签的属性。

    -C    添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。

    -H    添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。

    -A    添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。

    -P    添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。

    -X    指定使用的代理服务器和端口号,例如:"126.10.10.3:88"。

    -V    打印版本号并退出。

    -k    使用HTTP的KeepAlive特性。

    -k    使用HTTP的KeepAlive特性。

    -d    不显示百分比。

    -S    不显示预估和警告信息。

    -g    输出结果信息到gnuplot格式的文件中。

    -e    输出结果信息到CSV格式的文件中。

    -r    指定接收到错误信息时不退出程序。

    -h    显示用法信息,其实就是ab -help

通常我们的使用方法是:ab -n 次数 -c 并发数 url请求地址

F:\apache\bin>ab -n10 -c10 tp5.com/admin/test/buy
This is ApacheBench, Version 2.3 <$Revision: 1748469 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking tp5.com (be patient).....done

Server Software:        Apache/2.4.23(服务器软件名称及版本信息)
Server Hostname:        tp5.com(服务器主机名)
Server Port:            80(服务器端口)
Document Path:          /admin/test/buy(供测试的URL路径)
Document Length:        24 bytes供测试的URL返回的文档大小)
Concurrency Level:      10(并发数)
Time taken for tests:   0.112 seconds(压力测试消耗的总时间)
Complete requests:      10(压力测试的总次数)
Failed requests:        0(失败的请求数)
Total transferred:      2270 bytes(传输的总数据量)
HTML transferred:       240 bytes(HTML文档的总数据量)
Requests per second:    89.52 [#/sec] (mean)(平均每秒的请求数)
Time per request:       111.701 [ms] (mean)(所有并发用户(这里是100)都请求一次的平均时间)
Time per request:       11.170 [ms] (mean, across all concurrent requests)(单个用户请求一次的平均时间)
Transfer rate:          19.85 [Kbytes/sec] received(传输速率,单位:KB/s)

Connection  Times (ms)   min    mean[+/-sd]    median    max
Connect:    0            0      0.3            0         1
Processing: 65           80     15.5           79        111
Waiting:    65           80     15.5           79        111
Total:      65           80     15.4           79        111

Percentage of the requests served within a certain time (ms)
50%    79
66%    79
75%    89
80%    100
90%    111
95%    111
98%    111
99%    111
100%   111 (longest request)

由于是本地测试,服务器比较渣,如果请求并发太高的话,apache就不干了..

F:\apache\bin>ab -n1000 -c1000 tp5.com/admin/test/buy
This is ApacheBench, Version 2.3 <$Revision: 1748469 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking tp5.com (be patient)

Test aborted after 10 failures

apr_socket_connect(): 由于目标计算机积极拒绝,无法连接。   (730061)

|  版权声明:本文为博主原创文章,转载请注明出处。