ab工具进行压力测试

简介与安装

ab:Apache Benchmark,只要我们安装了Apache,就能够在Apache的安装目录中找到它.

yum | apt 安装的Apache  ab的目录一般为/usr/bin 也可以通过 which ab 查看

ab 不仅仅针对apache服务器的网站进行压力测试,nginx、tomcat、IIS等其他服务器也可以进行压力测试.

不能或不想安装Apache,也可以使用ab,安装Apache的工具包httpd-tools即可:

yum -y install httpd-tools    //安装
ab -V                         //检测是否成功安装

用法简单说明

切换到 ab所在目录    ab -help 查看用法介绍

可以看出:使用方式为 

ab  [可选的参数]   要进行压力测试的URL    

参数说明

-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特性。

-d  不显示百分比。

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

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

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

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

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

实际应用及简单说明

如:    ab -c 100 -n 1000 http://dev2.lystrong.cn/ 

Server Software: Apache/2.4.18                          (服务器软件名称及版本信息)
Server Hostname: dev2.lystrong.cn                     (服务器主机名)
Server Port: 80                                                      (服务器端口)

Document Path: /                                                   (供测试的URL路径)
Document Length: 0 bytes                                     (供测试的url返回的文档大小)

Concurrency Level: 100                                         (并发数)
Time taken for tests: 3.927 seconds                      (压力测试消耗的总时间)
Complete requests: 1000                                       (压力测试的总次数)

Failed requests: 0                                                   (失败的请求数)
Total transferred: 225000 bytes                              (传输的总数据量)
HTML transferred: 0 bytes                                      (HTML文档总数据量)
Requests per second: 254.67 [#/sec] (mean)         (平均每秒的请求数)
Time per request: 392.661 [ms] (mean)                  (所有并发用户请求一次的平均时间 此处为100)
Time per request: 3.927 [ms] (mean, across all concurrent requests)          (单个用户请求一次的平均时间)
Transfer rate: 55.96 [Kbytes/sec] received             (传输速率  单位 :KB/S)

Connection Times (ms)
min mean[+/-sd] median max
Connect: 3 17 108.7 5 1005
Processing: 8 235 201.5 239 3409
Waiting: 8 234 200.9 239 3409
Total: 13 252 234.2 243 3413

Percentage of the requests served within a certain time (ms)
50% 243
66% 314
75% 326
80% 332
90% 345
95% 507
98% 966
99% 1337
100% 3413 (longest request)

可以测试很高的总请求次数和高并发数,模拟高压力情况,Apache拒绝访问 或服务器打开文件太多

出现 Too many open files (24)主要是因为文件打开数的限制,默认情况下是1024,可以使用ulimit -n查看,可以看出系统默认open files的1024不足以支撑测试,

使用  

ulimit -SHn 65536  //临时更改文件打开数

 

出现:

Benchmarking dev2.lystrong.cn (be patient)  
Test aborted after 10 failures
apr_socket_connect():

Apache拒绝访问了

       

原文地址:https://www.cnblogs.com/yimingwang/p/9956937.html