Apache 的 ab 压测工具快速使用

时间:2023-03-09 16:21:08
Apache 的 ab 压测工具快速使用

  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)