ab 是一个 httpd 自带的很好用的压力测试工具,它是 apache bench 命令的缩写。ab 命令会创建多个并发访问线程,模拟多个访问者同时对某一 URL 地址进行访问。可以用来测试 apache 的负载压力,也可以用来测试 nginx、lighthttp、tomcat、IIS 等其它 Web 服务器的压力负载性能。
安装
yum -y install httpd-tools
查看是否安装成功
ab -V
help 查看 ab 参数详细说明
ab --help
正式压测
ab -n 100 -c 20 http://www.baidu.com
-n 表示 100 个请求,-c 模拟 20 并发,相当于20个人同时访问后面的测试 URL
ab -t 60 -c 100 http://www.baidu.com
在 60s 内发请求,一次 100 个请求
结果参数解释
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Completed requests
Finished requests
Server Software: Microsoft-HTTPAPI/2.0 表示被测试的Web服务器软件名称
Server Hostname: 192.168.0.10 表示请求的URL主机名
Server Port: 表示被测试的Web服务器软件的监听端口
Document Path: / 表示请求的URL中的根绝对路径,通过该文件的后缀名,我们一般可以了解该请求的类型
Document Length: bytes 表示HTTP响应数据的正文长度
Concurrency Level: 表示并发用户数,是我们设置的参数之一
Time taken for tests: 0.914 seconds 所有这些请求处理完成所花费的时间
Complete requests: 完成请求数
Failed requests: 失败请求数
Write errors:
Non-2xx responses:
Total transferred: bytes 网络总传输量
HTML transferred: bytes HTML内容传输量
Requests per second: 875.22 [#/sec] (mean) 吞吐量-每秒请求数
Time per request: 914.052 [ms] (mean) 服务器收到请求,响应页面要花费的时间
Time per request: 1.143 [ms] (mean, across all concurrent requests) 并发的每个请求平均消耗时间
Transfer rate: 420.52 [Kbytes/sec] received 平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
网络上消耗的时间的分解:
Connection Times (ms) min mean[+/-sd] median max
Connect: 0.5
Processing: 125.2
Waiting: 189.1
Total: 125.0
整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间
其中 50% 的用户响应时间小于 571 毫秒
80% 的用户响应时间小于 652 毫秒
最大的响应时间小于 684 毫秒
Percentage of the requests served within a certain time (ms)
%
%
%
%
%
%
%
%
% (longest request)