服务器性能指标:Apache压力测试工具ab

时间:2022-02-11 04:50:18

1. 概述


项目上线前,需要先知道web服务的性能指标,也就是服务器的并发处理能力。 服务器的吞吐率, 即qps, query per seconds. 需要通过压力测试来知道性能。 常用压测的工具 ab, ApacheBench

2. ab安装


ab为Apache附带压测工具。 安装Apache后在  apache/bin 目录下 安装:http://blog.csdn.net/yonggang7/article/details/22607721

3. ab使用


先检查ab工具是否正常,查看其版本号
cd apache/bin
./ab -V
输出值
This is ApacheBench, Version 2.3 <$Revision: 1554214 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
开始压测
./ab -n1000 -c10 http://localhost:8999/index.html
可以看到下面的结果
Server Software:        Apache/2.4.9
Server Hostname: localhost
Server Port: 8999

Document Path: /index.html
Document Length: 45 bytes

Concurrency Level: 10
Time taken for tests: 0.223 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 299000 bytes
HTML transferred: 45000 bytes
Requests per second: 4477.76 [#/sec] (mean)
Time per request: 2.233 [ms] (mean)
Time per request: 0.223 [ms] (mean, across all concurrent requests)
Transfer rate: 1307.47 [Kbytes/sec] received

4. ab常用参数


-h    显示帮助信息 -V   查看版本号 -c   并发用户数 -n   总请求数 -C  请求cookie,用法 "cookie_name=value", 可重复 -d   不显示"percentage served within XX [ms] table". -H  增加额外的请求头, -i    用HEAD请求代替GET -k   启用Http keepalive功能, -v   显示详细信息  "-v4"  4或更大值会显示头信息,"-v3" 3或更大值可以显示响应代码(404,200等),2或更大值可以显示警告和其他信息。 -w  以html格式输出结果 -t    超时时间,所有请求的最大执行时间,默认没有限制。

5. ab测试结果字段意思


Server Software:        服务器名称
Server Hostname: url主机名称
Server Port: 端口

Document Path: url中绝对路径
Document Length: Http相应数据的正文长度

Concurrency Level: 并发用户数,我们用-c设置的参数
Time taken for tests: 所有请求处理完花费的时间 秒 seconds
Complete requests: 总请求数,我们用-n设置的参数
Failed requests: 表示失败的请求数,
指请求在连接服务器,发送数据,接收数据等环节发生的异常,以及无响应后超时,超时时间可以用-t 来设置
另外,如果响应头的http状态码为2XX以外的值,这些不算在失败的请求
Total transferred: 表示http响应头和正文的总和 bytes
HTML transferred: 相应正文的总和 bytes
Requests per second: 这是最重要的数据,表示每秒处理请求数 requests per seconds 4634.07 [#/sec] (mean)
Time per request: 用户平均等待时间2.158 [ms] (mean)
Time per request: 服务器平均处理时间 0.216 [ms] (mean, across all concurrent requests)
Transfer rate: 每秒从服务器获取的数据长度 1353.11 [Kbytes/sec] received
Percentage of the requests served within a certain time (ms) 每个请求处理时间的分布

6. 拐点测试


性能测试的结果一般为性能拐点值。当并发数越来越大时,服务器的qps反而会下降,处理时间会上升。 压力测试时将并发数由小到大进行测试,然后制作吞吐率随并发用户数变化的曲线图,服务器处理时间的曲线图。 在最高点为服务器性能的最大吞吐率。