🌈 赏金任务 - 性能测试中常用的性能指标有哪些?请解释每个指标的含义。

赏金任务每周更新,请持续关注哦 :love_letter:

题目

  • 性能测试中常用的性能指标有哪些?请解释每个指标的含义。

参与方式

  • 本帖下方回复你的答案即可

赏金

  • 100元京东购物卡

活动时间

  • 2023年5月15日 - 2023年5月21日

本周赏金任务汇总: 🌈 赏金任务发布 2023-05-15

本问题参与赏金活动,详情点击 :rainbow: 赏金活动上线啦 丨做赏金任务挑战千元奖金 查看活动介绍

响应时间:客户端发出请求到服务器,然后服务器返回结果到客户端所用的时间
资源占用率:系统资源的使用情况
事务的吞吐量:单位时间内服务器处理事务的数量
并发数:同一时间内请求服务器的用户数

常用的性能指标包括以下几个:

  1. 响应时间(Response Time):指从用户发出请求到系统返回响应结果所需要的时间。响应时间短意味着系统对用户请求的响应速度快,用户体验好。

  2. 吞吐量(Throughput):指单位时间内系统能够处理的请求数量。吞吐量高意味着系统的处理能力强,能够支持更多的用户同时访问。

  3. 吞吐率(Throughput Rate):指单位时间内系统能够处理的数据量。吞吐率高意味着系统处理数据的能力强,能够更好地满足用户需求。

  4. 并发用户数(Concurrent Users):指同时访问系统的用户数量。并发用户数高意味着系统需要支持更多的用户同时访问,对系统的负载能力提出更高要求。

  5. 线程数(Thread Count):指系统当前运行的线程数量。线程数高意味着系统负载较大,需要进一步优化和改进。

  6. 垃圾回收时间(Garbage Collection Time):指 JVM 垃圾回收所需要的时间。垃圾回收时间长意味着系统的性能可能会受到影响,需要进一步优化和改进。

  7. CPU 使用率(CPU Utilization):指系统 CPU 使用的百分比。CPU 使用率高意味着系统负载较大,可能会影响系统的响应速度和性能。

  8. 内存使用率(Memory Utilization):指系统内存使用的百分比。内存使用率高意味着系统负载较大,可能会影响系统的响应速度和性能。

  9. 网络延迟(Network Latency):指数据在网络中传输所需要的时间。网络延迟高意味着数据传输速度慢,可能会影响系统的响应速度和性能。

  10. 错误率(Error Rate):指系统处理请求时出现错误的比例。错误率高意味着系统的稳定性和可靠性较低,需要进一步排查和修复问题。

  11. 平均事务响应时间(Average Transaction Response Time):指系统完成一次事务所需要的平均时间。事务响应时间短意味着系统对用户请求的处理速度快,用户体验好。

  12. 平均请求处理时间(Mean Time to Process Request, MTTPR):指系统处理一个请求所需要的平均时间,包括请求到达系统和响应返回给用户的时间。平均请求处理时间短意味着系统对用户请求的处理速度快,用户体验好。

  13. 平均连接时间(Mean Time to Connect, MTTC):指客户端发起连接请求到建立连接所需要的平均时间。平均连接时间短意味着系统连接速度快,能够更快地响应用户请求。

  14. 平均负载(Average Load):指系统在一段时间内的平均负载水平。平均负载高意味着系统负载较大,需要进一步优化和改进。

  15. 平均响应时间(Average Response Time):指系统处理请求的平均时间。平均响应时间短意味着系统对用户请求的响应速度快,用户体验好。

  16. 最大并发用户数(Peak Concurrent Users):指系统能够支持的最大并发用户数量。最大并发用户数高意味着系统的负载能力强,能够支持更多的用户同时访问。

  17. 磁盘 I/O 使用率(Disk I/O Utilization):指系统磁盘 I/O 操作的百分比。磁盘 I/O 使用率高意味着系统磁盘负载较大,可能会影响系统的响应速度和性能。

  18. 网络带宽(Network Bandwidth):指单位时间内系统能够传输的数据量。网络带宽高意味着系统能够支持更多的数据传输,对于需要大量数据传输的应用场景尤为重要。

  19. 可扩展性(Scalability):指系统能够支持的用户数量和负载能力是否能够随着业务增长而线性扩展。可扩展性高意味着系统能够更好地应对业务增长和用户数量增加的挑战。

  20. 稳定性(Stability):指系统在长时间运行过程中是否稳定,是否容易出现崩溃或错误,以及是否容易恢复。稳定性高意味着系统更加可靠,能够更好地满足用户需求。

  21. 可用性(Availability):指系统能够在多长时间内保持正常运行的能力。可用性高意味着系统的稳定性和可靠性较高,能够更好地满足用户需求。

  22. 可维护性(Maintainability):指系统是否容易进行维护和修复,以及是否容易进行升级和扩展。可维护性高意味着系统更加稳定和可靠,能够更好地满足用户需求。

  23. 可靠性(Reliability):指系统在长时间运行过程中是否能够保持正常运行,以及是否容易出现崩溃或错误。可靠性高意味着系统更加稳定和可靠,能够更好地满足用户需求。

  24. 安全性(Security):指系统在处理数据和交互过程中是否能够保证数据的安全和隐私。安全性高意味着系统能够更好地保护用户数据和隐私,防止数据泄露和攻击。

  25. 可测试性(Testability):指系统是否容易进行测试和验证,以及是否容易进行自动化测试。可测试性高意味着系统更加稳定、可靠和易于维护,能够更好地满足用户需求。

  26. 系统可用性(System Availability):指系统在一定时间内能够正常运行的时间比例。系统可用性高意味着系统更加稳定和可靠,能够更好地满足用户需求。

  27. 磁盘使用率(Disk Utilization):指系统磁盘使用的百分比。磁盘使用率高意味着系统存储容量可能不足,需要及时清理或扩容。

  28. 数据库响应时间(Database Response Time):指数据库处理请求的平均时间。数据库响应时间长意味着系统的性能可能会受到影响,需要进一步优化和改进。

  29. 页面加载时间(Page Load Time):指页面从请求开始到页面完全加载显示所需的时间。页面加载时间长意味着用户等待时间较长,用户体验差。

  30. 日志记录量(Log Volume):指系统产生的日志记录数量。日志记录量大意味着系统可能存在性能问题或异常情况,需要进一步排查和处理。

一般,我们做性能测试的目标是,在大用户量、数据量的超负荷下,获得服务器运行时的相关数据,从而分析出系统瓶颈,提高系统的稳定性。

而在一份性能测试报告里,会看到以下的这些关键的数据指标:

最大并发用户数,HPS(点击率)、事务响应时间、每秒事务数、每秒点击量、吞吐量、CPU使用率、物理内存使用、网络流量使用等。

但性能测试的指标,前后端的性能测试关注点是不一样的。

前端需主要关注的点是:

  • 响应时间:用户从客户端发出请求,并得到响应,以及展示出来的整个过程的时间。

  • 加载速度:通俗的理解为页面内容显示的快慢。

  • 流量:所消耗的网络流量。

后端需主要关注的是:

  • 响应时间:接口从请求到响应、返回的时间。

  • 并发用户数:同一时间点请求服务器的用户数,支持的最大并发数。

  • 内存占用:也就是内存开销。

  • 吞吐量(TPS):Transaction Per Second, 每秒事务数。在没有遇到性能瓶颈时:TPS=并发用户数*事务数/响应时间。

  • 错误率:失败的事务数/事务总数。

  • 资源使用率:CPU占用率、内存使用率、磁盘I/O、网络I/O。

接下来,从性能测试分析度量的度角来看,主要可以从如下几个大的维度来收集考察性能指标:系统性能指标、资源性能指标、稳定性指标

一、系统性能指标

常见的可从如下几类进行参考:

响应时间

系统处理能力

吞吐量

并发用户数

错误率

1、响应时间

简称RT,指的是客户发出请求到得到系统响应的整个过程的时间。也就是用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。

直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。

2、系统处理能力

指系统在利用系统硬件平台和软件平台进行信息处理的能力。系统处理能力通过系统每秒钟能够处理的交易数量来评价,交易有两种理解:一是业务人员角度的一笔业务过程;二是系统角度的一次交易申请和响应过程。前者称为业务交易过程,后者称为事务(事务是用户某一步或几步操作的集合)。两种交易指标都可以评价应用系统的处理能力。

一般情况下,系统处理能力又用以下几个指标来度量:

HPS(Hits Per Second) :每秒点击次数,单位是次/秒。

TPS(Transaction per Second):系统每秒处理交易次数,单位是笔/秒。

QPS(Query per Second):系统每秒处理查询次数,单位是次/秒。

对于互联网业务中,如果某些业务有且仅有一个请求连接,那么TPS=QPS=HPS,一般情况下用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器点击请求。

3、吞吐量

吞吐量是指系统在单位时间内处理请求的数量。对于并发系统,通常需要用吞吐量作为性能指标。

4、并发用户数

并发用户数指在同一时刻内,登录系统并进行业务操作的用户数量。

并发用户数对于长连接系统来说最大并发用户数即是系统的并发接入能力。对于短连接系统而言最大并发用户数并不等于系统的并发接入能力,而是与系统架构、系统处理能力等各种情况相关。

5、错误率

简称FR,指系统在负载情况下,失败交易的概率。错误率=(失败交易数/交易总数)*100%。

二、资源性能指标

一般从如下几类进行参考分析:

CPU

内存

磁盘吐吞量

网络吐吞量

1、CPU

又称为中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

CPU指标主要指的CPU利用率,包括用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。

2、内存

内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。

现在的操作系统为了最大利用内存,在内存中存放了缓存,因此内存利用率100%并不代表内存有瓶颈,衡量系统内存是否有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般情况下,SWAP交换空间利用率要低于70%,太多的交换将会引起系统性能低下。

3、磁盘吐吞量

简称为Disk Throughput,是指在无磁盘故障的情况下单位时间内通过磁盘的数据量。

磁盘指标主要有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利用率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的的重要依据,一般情况下,磁盘繁忙率要低于70%。

4、网络吐吞量

简称为Network Throughput,是指在无网络故障的情况下单位时间内通过的网络的数据数量。单位为Byte/s。网络吞吐量指标用于衡量系统对于网络设备或链路传输能力的需求。当网络吞吐量指标接近网络设备或链路最大传输能力时,则需要考虑升级网络设备。

网络吞吐量指标主要有每秒有多少兆流量进出,一般情况下不能超过设备或链路最大传输能力的70%。

三、稳定性指标

最短稳定时间:系统按照最大容量的80%或标准压力(系统的预期日常压力)情况下运行,能够稳定运行的最短时间。

一般来说,对于正常工作日(8小时)运行的系统,至少应该能保证系统稳定运行8小时以上。

对于7*24运行的系统,至少应该能够保证系统稳定运行24小时以上。如果系统不能稳定的运行,上线后,随着业务量的增长和长时间运行,将会出现性能下降甚至崩溃的风险。

1 个赞
指标 含义 使用场景 理想数值范围
响应时间 从发送请求到接收到响应的时间 衡量系统对用户请求的快速响应能力 低延迟,通常在几百毫秒或更少
吞吐量 单位时间内系统处理的请求数量 衡量系统的处理能力和性能瓶颈 高吞吐量,具体数值视应用场景而定
并发用户数 同时发送请求并与系统交互的用户数量 衡量系统在并发负载下的性能表现 可支持的并发用户数,具体数值视应用场景而定
CPU 使用率 CPU 在某一时间段内的使用百分比 监测系统 CPU 资源的利用情况 合理范围内,具体数值视应用场景和硬件配置而定
内存使用率 内存资源在某一时间段内的使用百分比 监测系统内存资源的利用情况 合理范围内,具体数值视应用场景和硬件配置而定
磁盘 I/O 磁盘读写操作的速度和处理能力 衡量系统的存储性能和磁盘资源利用情况 高磁盘 I/O 吞吐量,具体数值视应用场景而定
错误率 在性能测试过程中发生的错误或失败请求的百分比 衡量系统的稳定性和可靠性 低错误率,通常在小于1%的范围内
平均响应时间 所有请求的平均响应时间 综合性能评估和性能趋势分析 低延迟,通常在几百毫秒或更少
最大响应时间 所有请求中的最大响应时间 检测系统在高负载情况下的最大响应时间 尽可能低,具体数值视应用场景而定
最小响应时间 所有请求中的最小响应时间 检测系统在正常或低负载情况下的最小响应时间 尽可能低,具体数值视应用场景而定
网络延迟时间 从发送请求到接收到首个字节的时间 衡量网络连接的速度和性能 低延迟,通常在几十毫秒或更少
错误百分比 发生错误请求的百分比 衡量系统的稳定性和错误处理能力 尽可能低,通常在小于1%的范围内
网络带宽 数据传输的速率 评估系统对于网络带宽的需求和限制 具体数值视应用场景和网络环境而定
页面渲染时间 从请求开始到页面完全渲染完成的时间 衡量网页加载速度和用户体验 尽可能低,通常在几秒或更少
并发连接数 同时与系统建立的连接数量 评估系统对并发连接的处理能力和性能 可支持的并发连接数,具体数值视应用场景而定
事务成功率 成功完成的事务占总事务数的百分比 衡量系统处理事务的可靠性和稳定性 尽可能接近100%,具体数值视应用场景而定