jmeter性能测试的指标分析和定义
通常情况下,性能测试关注被测对象的时间与资源利用特性及稳定性。时间特性,即被测对象实现业务交易过程中所需的处理时间,从用户角度来说,越短越好。资源利用特性,即被测对象的系统资源占用情况,一般web系统不关注客户端的资源占用情况,仅关注服务器端,通常为服务器端的CPU,内存,网络带宽,磁盘等(根据被测对象架构设计,还可以分为web服务器,中间件,数据库,负载均衡)。稳定性,关注被测对象在一定负载情况下,持续稳定提供服务的能力。
不同的被测对象,不同的业务需求,可能有不同的指标需求,但大多数测试需求中都包含以下几个性能指标:
四个字:多(并发量)、快(延时,响应时间,端到端)、好(稳定性【长时间运行】)、省(资源使用率),然后加上一个思考时间
1.并发用户数
并发,即为同时出发,从应用系统架构层面来看,并发意为单位时间内服务器接收到的请求数。客户端的某个具体行为包括了若干个请求,因此,并发数被抽象理解为客户端单位时间内发生给服务器端的请求,而客户端的业务请求一般为用户操作行为,因此,并发数理解为并发的用户数,而这些用户是虚拟的,又可称为虚拟用户。
并发数,广义来讲,是单位时间内同时发送给服务器的业务请求,不限定具体业务类型。狭义来讲,是单位时间内同时发送给服务器的相同的业务请求,需限定具体业务类型。
用户数:
1.系统用户数:软件系统注册是用户总数(user表里的数据)。他直接影响着磁盘空间大小,磁盘满和空对系统的查询有影响。(没有经过初始化的性能环境 = 没有作用的环境,因为没有和性能环境一致,制造那么多的用户量。)
2.在线用户数;某段时间内访问的用户数,这些用户数只是在线,不一定同时在做某一件事情。和内存有更大关系,要保持登录状态,session有关,保存在内存中。
3.并发用户数:某段时间同时向软件系统提交请求的用户数,场景不一定是同一个。(严格并发:同样的时刻在做同一件事情(双11抢购),广义并发是:你点你的,我点我的,不一定同时点一个按钮)
平均并发用户数的计算:C=nL/T 不绝对是这样
C是平均的并发用户数辆,n是平均每天的访问用户数(login session),L是一天内用户从登陆到退出的平均时间(login session的平均时间),T是考察时间长度(一天内多长时间有用户使用系统)
并发用户数峰值计算:C~=C+3*根号C
2.响应时间:从用户发出请求到用户接收到从服务器返回结果整个过程所耗费的时间。(N1+N2+N3+N4)也就是服务器处理时间+网络传输时间
1.用户客户端呈现时间
2.请求/响应数据网络传输时间
3.应用服务器处理时间
4.数据库系统处理时间
对于一个web系统,普遍接受的响应时间标准为2(非常好的)/5(可以接受的)/8(上限)秒。
比如这个例子,并发数到了5000,响应时间忽然出现了拐点,就要分析什么原因导致的,看看做了什么。
·
3.吞吐量:单位时间内处理的客户端请求数量,直接体现服务器的性能承受能力。
从业务角度来看:吞吐量可以用:请求数/秒,页面数/秒,人数/天 或者 处理业务数/小时 等单位来衡量用 请求数/秒 或者 页面数/秒来衡量。
从网络角度来看:吞吐量可以用:字节/秒来衡量。字节数/天。
每秒事务数(TPS)和每秒查询数(QPS)归属吞吐量,区别在于TPS\QPS描述服务器具体性能处理能力。
对于交互式应用来说,吞吐量的指标反应的是服务器承受的压力,他能够说明系统的负载能力。
这个就是到了300就不会在增加,相当于饱和了(要看看是内存满了,还是cpu,还是磁盘),300就是头(相当于水满了,再加水也进不去杯子里面了),后面是一条平平的,可能就是网络的问题(比较多)引起的,要增加带宽了,因为丢包了。如果是波浪线,可能是内存满了,和磁盘一直交换,那么可能需要增加服务器。如果是一会上来一会下去,可能就是cpu一会占用一会释放。
4.业务成功率(错误率):系统在负载情况下,失败交易的概率。错误率=(失败交易数/交易总数)*100%
1.不同系统对错误率要求不同,但一般不超过千分之五。(但是不是绝对的,淘宝不应该是这样,应该更少)
2.稳定性较好的系数,其错误率应该由超时引起,即为超时率。
5.TPS:每秒事务数(每秒服务器处理的业务数量),接着3来讲,因为是换成了每秒。tps=并发数/平均响应时间(所有的响应时间加起来/次数)。 每秒完成多少个业务功能。
事务就是业务,业务就是客户操作的功能。比如,商城,用户可以搜索商品,这就是一个业务,也是一个事务。事务,可大(购物)可小(搜索)。
事务:业务站在代码角度的统称,也可以理解为一段或者多段代码。
平均相应时间=所有的响应时间加起来/次数
6.QPS: Query Per Second 每秒查询数:每秒服务器能处理的请求数量(衡量web服务器处理能力一个重要指标)。(比如,百度查询一个,在network显示的发送了多少个requests就是每秒查询数 )
应用:控制服务器每秒处理指定请求数(如:控制服务器达到每秒60QPS,服务器的性能各项性能指标是否正常)。每秒发送了多少个请求,通常在负载,压力测试时用来模拟用户的业务背景压力。
和点击数的区别: 一个是发送的资源,一个是请求(不一定是资源)。
7.思考时间
Think Time:从业务角度来看,这个时间指用户进行操作时,每个请求之间的时间间隔。
在做性能测试时,为了模拟这样的时间间隔,引入了思考时间这个概念,来更加真实的模拟用户的操作。
性能计数器:是描述服务器或操作系统性能的一些数据指标
比如:内存
CPU
磁盘等资源使用率等
8.点击数:点击数是衡量web服务器处理能力的一个重要指标。
1.点击数不是通常一般人认为的访问一个页面就是一次点击数,点击数是该页面包含的元素(如:图片,链接、框架等)向web服务器发出的请求数量。比如,我点击百度的百度一下,发出去36个请求资源文件数量(比如css,js,图片等),这个就是数量。(指的是,在页面上点击以后,浏览器往服务器发送http请求资源的请求数量。)
2.通常我们也用每秒点击次数(Hits per Second)指标来衡量web服务器的处理能力。注意:只有web项目才有此指标。
9.资源利用率:系统各种资源的使用情况,一般用“资源的使用量/总的资源可用量*100%”形成资源利用率的数据
提示:通常,没有特殊需求的话,
1)建议CPU(处理器)不高于80%;(+-5)
2)内存不高于80%,所有软件的运行都是靠内存来加载数据。
3)磁盘不高于90%,
4)网络不超过80%,带宽