性能测试指标_性能测试指标

一、性能测试指标

性能测试是通过测试工具模拟多种正常、峰值及异常负载条件来对系统的各项性能指标进行测试。

目的:验证软件系统是否能够达到用户提出的性能指标,发现系统中存在的性能瓶颈并加以优化。

性能指标分为两个方面:

系统指标(与用户场景和需求相关指标)

资源指标(与硬件资源消耗相关指标)

系统指标说明

1.响应时间、平均响应时间

一个请求做出响应所需要的时间

响应时间=网络响应时间+应用程序响应时间=(N1+N2+N3+N4)+(A1+A2+A3)

e5cd018c7f80cdf79632e86dfb97fbbb.png

平均响应时间:所有请求花费的平均时间

如:如果有100个请求,其中 98 个耗时为 1ms,其他两个为 100ms

平均响应时间:(98 * 1 + 2 * 100) / 100.0 = 2.98ms,但是,2.98ms并不能反映服务器的整体效率,因为98个请求耗时才1ms,引申出百分位数

百分位数:以响应时间为例,指的是 99% 的请求响应时间,都处在这个值以下,更能体现整体效率。

2.并发用户数

并发主要是针对服务器而言,在同一时刻与服务器进行交互(指向服务器发出请求)的在线用户数。

在线用户:指某段时间内,用户访问系统的用户数,如多个用户在浏览网页,但没有对同时对服务器进行数据请求,需要与并发用户数区分开。

并发用户数C,计算公式C=nL/T

n:每天访问系统的用户数

L:在线用户从登陆到退出的时间

T:用户每天使用系统大概多长时间

峰值C1,即最大并发数,计算公式C1=C+³√C

注:理解最佳并发用户数和最大并发用户数

看了《LoadRunner没有告诉你的》之理发店模式,对最佳并发用户数和最大的并发用户数的理解小小整理了一下。

所谓的理发店模式,简单地阐述一下,一个理发店有3个理发师,当同时来理发店的客户有3个的时候,那么理发师的资源能够有效地利用,这时3个用户数即为最佳的并发用户数;当理发店来了9个客户的时候,3个客户理发,而6个用户在等待,3个客户的等待时间为1个小时,另外的3个客户的等待时间为2小时,客户的最大忍受时间为3小时包括理发的1个小时,所以6个客户的等待时间都在客户的可以承受范围内,故9个客户是该理发店的最大并发用户数。具体的随着并发用户数的增加,响应时间,吞吐量,资源利用情况如下图所示:

24286945f2b80e554786089dae97915b.png

Light Load(较轻压力)-----最佳用户数(资源利用最高)---(较重压力,系统可以持续工作,但用户等待时间较长,满意度会下降)-----Heavy Load-------最大并发用户数--------Buckle Zone(用户无法忍受而放弃请求)

最佳并发用户数:当系统的负载等于最佳并发用户数时,系统的整体效率最高,没有资源被浪费,用户也不需要等待
最大并发用户数:系统的负载一直持续,有些用户在处理而有的用户在自己最大的等待时间内等待的时候

我们需要保证的是:

(1)最佳并发用户数需大于系统的平均负载

(2)系统的最大并发用户数要大于系统需要承受的峰值负载

怎么理解这两句话呢?

(1)系统的平均负载:在特定的时间内,系统正在处理的用户数和等待处理的用户数的总和

如果系统的平均负载大于最佳并发用户数,则用户的满意度会下降,所以我们需要保证系统的平均负载小于或者等于最佳并发用户数

(2)峰值:指的是系统的最大能承受的用户数的极值

只有最大并发用户数的大于系统所能承受的峰值负载,才不会造成等待空间资源的浪费,导致系统的效率低下

3.吞吐量、吞吐率

衡量网络性能的重要指标

吞吐量:网络传输的数据量(处理客户的请求数)

吞吐率:单位时间(可以是秒/分/时/天)内网络成功传输的数据量,如请求数/秒、页面数/秒

4.事务,TPS(Transaction Per Second)每秒事务数

事务:可以看作是一个动作或是一系列动作的集合,例如登录,从登录开始到登录结束为一个事务。

TPS:衡量系统处理事务或交易的能力,即服务器对客户请求的能力,每秒处理的事务数,一般在LoadRunner上使用,设置事务,然后统计单位时间内系统可以成功完成多少个定义的事务。

5.点击量、点击率(Hits Per Second)

点击数:指Web Server收到的HTTP请求数。

点击率:单位时间每秒用户向Web Server提交的HTTP请求数。

区分鼠标点击数:如请求一个网页,网页含有3张图片,向Web Server请求的点击数:1+3=4,而鼠标的一次点击就可以访问网页,点击数只有1次

资源指标说明

1.硬件性能指标:CPU,内存Memory,磁盘I/O(Disk I/O),网络I/O(Network I/O)

CPU:主要解释计算机指令以及处理计算机软件中的数据

Linux系统中top命令查看CPU的使用率

CPU的利用率(<=75%)有:user(用户使用),sys(系统调用<=30%),wait(等待<=5%),idle(空闲)

当user消耗高时,通过top命令查看哪个用户进程占用cpu的使用

user消耗过高的原因可能有:

(1)代码问题。如代码中耗时循环中不加sleep,即例如while的死循环中,没有加sleep时间,导致没有空余的时间将cpu的控制权给其他的进程,一直陷入该死循环中,cpu得不到休息,所以usr的消耗过高,则cpu的消耗高

(2)gc频繁。gc则为垃圾回收,由于垃圾回收也是需要大量的计算,也消耗cpu,所以当gc频繁时也导致usr用户空间的消耗也过高,cpu消耗过高

当sys消耗高时,通过top命令查看系统调用资源的情况

sys消耗过高的原因可能有:
(1)上下文切换频繁。上下文切换发生的情况有:中断处理,多任务处理,用户状态改变。

中断处理,当cpu停止处理当前的进程转而处理中断请求的进程时发生上下文切换。多任务处理则为有多个进程请求cpu的处理,进程的数量多于cpu的核数,则分配进程时间片,根据时间片处理进程,意味着会强制停止一个进程而去处理另一个进程,形成频繁的上下文切换。用户状态改变则为user状态与sys状态的改变。

wait较高时,即等待的进程占比高则可以考虑是否磁盘读写,磁盘瓶颈问题, 等待的进程较多时,cpu无论如何切换都是切换到等待的进程,导致cpu一直在频繁切换等待的线程而利用率较低

内存:与cpu沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存分为物理内存、页面交换(Paging),SWAP内存(虚拟内存)

页面交换:当物理内存即实际的内存满了的时候,将物理内存中不常用的进程调出存储到虚拟内存中,以缓解物理内存空间的压力,所以当物理内存与虚拟内存的数据交换频繁的时候,这时候就要关注下内存的性能情况。

SWAP内存:为进程分配虚拟的内存空间,即调用硬盘的空间作为内存使用。

内存的性能分析是又可用内存与页面交换来分析的,可用内存使用占70%-80%为上限,当超出这个数值,内存性能情况就比较危险,而且即使可用内存使用不超过80%的数值时,页面交换比较频繁时,也是要关注下内存情

一般物理内存即使是满内存也不能代表内存出现问题,主要是看虚拟内存swap,虚拟内存应该<=70%,大于则可以考虑是否内存问题或者内存泄漏

磁盘吞吐量,指单位时间内通过磁盘的数据量。主要关注磁盘的繁忙率,如果高于70%,则磁盘瓶颈

网络吞吐量,指单位时间内通过网络的数据量,当吞吐量大于网路设备或链路最大传输能力,即带宽时,则应该考虑升级网络设备或者增加带宽,Linux命令netstate

网络IO也有可能出现终止连接失败。例如当服务端出现大量的TIME_WAIT,见以下TCP终止连接的第4个步骤,在主动发起关闭连接方接收到结束符FIN时状态变为TIME_WAIT,这时在服务端发现大量的TIME_WAIT,意味着关闭连接是由服务端发起的。

问?什么情况是由服务端发起关闭连接?答:在用户端的应用程序忘记关闭连接

另外如果在服务端发现大量状态CLOSE_WAIT,则说明第二次关闭回不去,也就是TCP关闭连接的第三个步骤没有执行,停留在CLOSE_WAIT的状态,浏览器如果这时发起请求则会返回超时连接,因为服务端这边一直无法进行第二次关闭,将结束符返回去给用户端。
注:普及TCP连接的三次握手,终止连接的四次握手

TCP三次握手连接:

(1)用户端发送SYN给服务器,用户端的状态为SYN_SEND

(2)服务端接收到后发送ACK给用户端,服务端的状态为SYN_RECV

(3)用户端接收到服务端发送过来的后发送了ACK给服务端,用户端的状态变为Estabilished

TCP终止连接:

(1)用户端的应用主动发起关闭连接,即应用调用close发送FIN给服务端

(2)服务端接收到FIN后发送ACK给用户端,服务端的状态变为CLOSE_WAIT

(3)服务端发送ACK给用户端的同时也将FIN作为一个文件结束符传递给接收端应用程序

(4)用户端的应用程序接收到FIN后将调用close关闭它的套接字,确认FIN,这时用户端的状态变为TIME_WAIT

(5)用户端发送ACK回执给服务端,连接终止

2.中间件:常用的中间件例如web服务器Tomcat,Weblogic web服务器,JVM(java虚拟机),ThreadPool线程池,JDBC数据驱动

注:http服务器和web服务器与应用服务器的差别是一个存储静态网页的服务器,一个是存储css,js等动态加载网页的服务器,而tomcat则属于应用服务器

注:对中间件例如对服务器的性能测试,需要将监控的jmeter-server的文件下载在服务端上,然后开启即可监控被测服务器的性能,或者将监控的软件下载在被测服务器上,远程启动监控软件等

3.数据库指标

应关注SQL,吞吐量,缓存命中率,连接数等,则是关注sql语句执行时间,以微妙为单位,吞吐量TPS,缓存命中率应>=95%

注:对数据库的性能测试通过jemter利用批量的sql语句对数据库进行操作,从而测试数据库的性能,前提是需要将jdbc的驱动加载在测试计划添加的驱动文件中,然后添加jdbc的前置处理器和jdbc的请求sample。

4.JVM,java虚拟机,为使java的代码可以编译运行在不同的平台上顺畅,仿真模拟各种计算机来实现

GC:自动内存管理程序,被引用的对象保存在内存中,当对象不被引用时则释放。关注的参数有Full GC完全java虚拟机垃圾部分回收频率

5.前端指标

前端应该关注页面展示,即首次显示时间,页面数量,页面大小,网络startRender,firstRender等

注:关注前端的性能与后端的性能的不同点在于,前端是每个用户的直观的感受,以及前端页面的加载元素耗费时间给予用户的感受,而后端的性能关注点在于多用户使用系统时,服务器是否能够承受或者服务器的处理能力如何,能否以较好的响应时间响应。

6.Load:系统平均负载,特定时间间隔内运行进程数,Load与cpu核数一致

4a3ebfd9e40712012a5cca9cdee39e4e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
性能测试是软件测试中的一个重要方面,用于评估系统在不同负载条件下的性能表现。以下是一些常见的性能测试指标: 1. 响应时间(Response Time):指系统从接收请求到返回结果所需的时间。较短的响应时间意味着系统对用户请求的响应速度更快。 2. 吞吐量(Throughput):指单位时间内系统能处理的请求数量。较高的吞吐量表示系统能够处理更多的请求。 3. 并发用户数(Concurrent Users):指同时访问系统的用户数量。通过模拟多个用户同时访问系统,可以评估系统在高并发情况下的性能表现。 4. 资源利用率(Resource Utilization):指系统在执行任务时所使用的硬件资源(如CPU、内存、磁盘等)的利用率。合理的资源利用率可以提高系统的性能效率。 5. 错误率(Error Rate):指在性能测试过程中出现的错误数量占总请求数量的比例。较低的错误率表示系统的稳定性和可靠性较高。 6. 平均负载(Average Load):指系统在一段时间内的平均负荷水平。通过监测平均负载,可以评估系统在长时间运行时的性能情况。 7. 可扩展性(Scalability):指系统在增加负载时的能力以保持性能水平。较好的可扩展性意味着系统能够适应不断增长的用户和数据量。 以上是一些常见的性能测试指标,具体的指标选择和评估方法应根据具体应用场景和需求进行确定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值