网站性能测试工具ab

在使用ab工具之前,先了解一下几个概念

1.吞吐率(Requests per second)
概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second = Complete requests / Time taken for tests

2.并发连接数(The number of concurrent connections)
概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

3.并发用户数(The number of concurrent users,Concurrency Level)
概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。

4.用户平均请求等待时间(Time per request)
计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
Time per request = Time taken for tests /( Complete requests / Concurrency Level)

5.服务器平均请求等待时间(Time per request: across all concurrent requests)
计算公式:处理完成所有请求数所花费的时间 / 总请求数,即
Time taken for / testsComplete requests
可以看到,它是吞吐率的倒数。
同时,它也=用户平均请求等待时间/并发用户数,即
Time per request / Concurrency Level

 

 

 

 

Apache下载安装:

1.下载

由于Apache自带ab工具,所以直接下载Apache,进入apache官网  http://httpd.apache.org/  下载apache(Windows,64位)即可,也可以直接复制地址下载   https://www.apachehaus.com/cgi-bin/download.plx?dli=OJjWv1UaNRTT6x2KPVkRMBlVOpkVFVFdZpWR4Z1d

2.解压

解压下载好的压缩文件到你想要的位置

网站性能测试工具ab

3.命令安装 httpd -k install

命令行到Apache下面的bin目录,录入命令httpd -k install安装

网站性能测试工具ab

报错的大概意思:在启动Apache服务之前必须修正一个错误,在D:\PHP\Apache2.4\conf 的httpd.conf文件的第39行,ServerRoot必须是有效的。

报错原因:httpd.conf里面配置的ServerRoot路径跟实际路径不一致,导致路径无效。

4.修改httpd.conf文件

修改ServerRoot的路径:

"D:/PHP/Apache2.4" 为实际路径。【上面的报错】

网站性能测试工具ab修改后:网站性能测试工具ab

修改端口号:

80改为88 【原因:防止与其他软件的端口冲突,无法启动Apache服务器】

网站性能测试工具ab修改后:网站性能测试工具ab

5.启动Apache服务

命令启动Apache服务:httpd -k start

网站性能测试工具ab

安装成功验证

1).开始-->运行-->services.msc-->确定(或回车键Enter)

网站性能测试工具ab

2).服务列表中查看Apache服务,存在说明安装成功

网站性能测试工具ab

 

6.Apache系统环境变量的配置

(手动配置是永久性的修改,命令配置只对当前窗口有效)

cmd到命令窗口,录入命令httpd restart重启Apache,如下图

网站性能测试工具ab

为了启动Apache时,不用每次命令切换到Apache目录,给Apache配置环境变量。

 

手动配置:

1).“计算机”右键 → “高级系统设置” → “高级” → “环境变量”

网站性能测试工具ab

新建变量HTTPD_HOME

2)点击系统变量的“新建”→ 变量名"HTTPD_HOME" → 变量值“D:\PHP\Apache2.4”(Apache安装路径)→ “确定”

网站性能测试工具ab

Path变量值追加

3).点击系统变量的“编辑”(没有时新建)→ 变量名"Path" → 变量值“%HTTPD_HOME%\bin;”(Apache的bin目录的路径)→ “确定”

     注意:变量值后面的分号“;”必须是英文分号。path:操作系统提供的环境变量。classpath:程序中引用的类所在的路径。

网站性能测试工具ab

4).设置成功后,手动重启cmd,录入命令[ httpd -k restart ]重启Apache服务。若是启动,说明系统环境变量配置成功。

网站性能测试工具ab

5).查看Apache版本号httpd -v

 

开始测试

打开终端,输入命令

abs -n 100 -c 100 https://www.dynavincloud.com/

其中 -n表示请求数,-c表示并发数

也可以测试具体页面 abs -n 100 -c 100 https://www.dynavincloud.com/index.chtml

 

测试结果分析

重要指标

Concurrency Level: //并发用户数
Time taken for tests: //表示这些请求被处理完成所花费的总时间
Complete requests: //表示总请求的数量
Failed requests: //失败的请求数

Total transferred: //整个场景中的网络传输量
HTML transferred: //整个场景中的HTML内容传输量

Requests per second:    [#/sec] (mean)
//吞吐率,大家最关心的指标之一,相当于 LR 中的每秒事务数,后面括号中的 mean 表示这是一个平均值
Time per request:  [ms] (mean)
//用户平均请求等待时间,大家最关心的指标之二,相当于 LR 中的平均事务响应时间,后面括号中的 mean 表示这是一个平均值
Time per request:  [ms] (mean, across all concurrent requests)
//服务器平均请求处理时间,大家最关心的指标之三

Transfer rate: //平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题

这段表示网络上消耗的时间分解

网站性能测试工具ab

//这几行组成的表格主要是针对响应时间也就是第一个Time per request进行细分和统计。一个请求的响应时间可以分成网络链接(Connect),系统处理(Processing)和等待(Waiting)三个部分。表中min表示最小值; mean表示平均值;[+/-sd]表示标准差(Standard Deviation) ,也称均方差(mean square error),这个概念在中学的数学课上学过,表示数据的离散程度,数值越大表示数据越分散,系统响应时间越不稳定。 median表示中位数; max当然就是表示最大值了。

//需要注意的是表中的Total并不等于前三行数据相加,因为前三行的数据并不是在同一个请求中采集到的,可能某个请求的网络延迟最短,但是系统处理时间又是最长的呢。所以Total是从整个请求所需要的时间的角度来统计的。这里可以看到最慢的一个请求花费了5866ms,这个数据可以在下面的表中得到验证。

 

整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其 中50%的用户响应时间小于4930毫秒,90% 的用户响应时间小于5725毫秒,最大的响应时间小于5866毫秒

网站性能测试工具ab

 

重点分析:
Requests per second
Time per request
Percentage of requests served within a certain time(ms)