性能测试度量指标

1-响应时间

响应时间指从用户或事务在客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,这整个过程所消耗的时间
在这里插入图片描述
在性能测试实践中,为了使响应时间更具代表性,响应时间通常是指事务的平均响应时间ART
在实践中要注意,不同行业、不同业务可接受的响应时间是不同的。一般情况下,对于在线实时交易,可接受的响应时间参考如下。
❑互联网企业:500毫秒以下,例如淘宝业务为10毫秒左右。
❑金融企业:1秒以下为佳,部分复杂业务为3秒以下。
❑保险企业:3秒以下为佳。❑制造业:5秒以下为佳。

2-用户数

从不同的角度来看,用户数可以分为系统注册用户数、在线用户数和并发用户数。其中,并发用户数指在同一时间段内,同时向系统提交请求的用户数。
在系统建设的规划阶段,有时候需要预测和提供系统能够支撑的并发用户数,作为系统建设的性能要求(需求)。此时可以根据系统规划的注册用户数、同时在线用户数及用户对系统的预期使用场景等进行分析,计算系统的并发用户数
平均并发用户数的计算公式:C=n×L/T
系统的具体并发用户数取决于具体的业务逻辑和业务场景。根据经验,一般应用系统并发用户数为在线用户数的10%~20%。基于泊松分布理论,并发用户数的峰值计算公式:
在这里插入图片描述

其中:
❑P代表并发用户峰值,即最大并发用户数;
❑C是平均并发用户数。一般情况下,大型系统(业务量大、机器多)做压力测试会选取1万~5万个并发用户,中小型系统做压力测试选取5000个用户比较常见。

3-系统处理能力

系统处理能力一般用系统的吞吐量,即系统在单位时间内能够完成的事务数量来衡量。例如,系统每秒处理事务数也称为每秒事务数,即TPS(Transaction Per Second)。从业务的角度看,系统处理能力也可以用页面数/秒、人数/天、处理事务数/小时等单位衡量。

在衡量系统处理能力指标TPS时,需要说明相关的前提条件,如并发用户数及存储上限、网络带宽等系统资源限制情况。

在没有性能瓶颈的情况下,TPS与并发用户数之间存在一定的联系
F=VU×R/T
❑F代表TPS;❑VU是并发用户数;❑R是每个并发用户发出的事务请求数;❑T是性能测试所用的时间。
在业界,一般用TPS来衡量整个业务流程,而且其数值越大越好。对于新建设系统,若没有历史数据做参考,可以根据经验参照同行业系统,并结合具体业务,由业务部门评估TPS标准。一般行业中的TPS参考标准如下。❑金融行业:1000~50000TPS,不包括互联网化的活动。
❑保险行业:100~100000TPS,不包括互联网化的活动。
❑制造行业:10~5000TPS。
❑互联网电子商务:10000~1000000TPS。
❑互联网中型网站:1000~50000TPS。
❑互联网小型网站:500~10000TPS。

4-错误率

错误率指的是系统在负载情况下出现失败交易的概率。错误率的计算公式如下:
错误率=(失败交易数÷交易总数)×100%不同系统对错误率的要求不同,但一般不超出6‰,即成功率不低于99.4%。
在测试过程中,若系统错误率升高,则说明系统的可用性在变差

5-成功率

成功率是指系统处于某种负载压力下出现成功交易的概率。成功率的计算公式如下:成功率=(成功交易数÷交易总数)×100%不同系统对成功率的要求不同,业界中系统成功率一般不低于99.4%

6-资源占用率

资源占用率也称为资源利用率或资源使用率,指系统在负载运行期间对资源的使用程度,包括数据库服务器、应用服务器、Web服务器的CPU、内存、硬盘、外置存储、网络带宽等资源的占用率。

资源占用率是测试和分析系统性能瓶颈的主要参考。
通常低于20%的使用率表示资源空闲,20%~60%的使用率表示资源使用稳定,60%~80%的使用率表示资源使用饱和,超过80%的资源使用率表示必须尽快进行资源调整和优化

7-CPU利用率

CPU利用率是判断系统处理能力以及运行是否稳定的重要参数。如果该值持续超过95%,则表明系统瓶颈是CPU,可以考虑增加一个CPU或更换一个更快的CPU。CPU利用率一般可接受的最大上限是85%,合理使用的范围为60%~70%。

8-内存页交换速率

如果该值偶尔升高,则表明当时有线程竞争内存。如果该值持续很高,则内存可能是瓶颈,也可能是内存访问命中率低。

内存页交换速率(Swap Rate)是指操作系统在物理内存不足时,将部分内存数据转移到磁盘上的过程。它表示单位时间内发生的内存页交换的数量。

当系统的物理内存不足以容纳当前运行的进程所需的所有数据和代码时,操作系统会将部分不常用的内存页转移到磁盘的交换空间(Swap Space)中。这样可以释放物理内存供其他进程使用,同时保持系统的正常运行。

内存页交换速率的值越高,表示系统中频繁进行内存页交换的情况越严重,可能会导致性能下降。因为将数据从硬盘读取到内存或者将内存页写回到硬盘都需要一定的时间和系统资源。频繁的内存页交换可能会增加系统的响应时间,并导致额外的 CPU 开销和磁盘 I/O 开销。

通常,较低的内存页交换速率是理想的,因为它表示系统能够更好地利用物理内存,避免过多的磁盘访问。如果你发现内存页交换速率过高,可以考虑增加系统的物理内存或者优化应用程序、调整系统的内存管理策略来减少内存交换的发生。

9-内存占用率

系统一般至少有10%可用内存,内存占用率可接受上限为85%。
在这里插入图片描述
为了最大限度利用内存,现在的操作系统在内存中设置了缓存,因此即便内存利用率为100%也并不一定代表内存有瓶颈,衡量系统内存是否有瓶颈主要看与虚拟内存的交换空间利用率。
一般情况下,交换空间利用率要低于70%,太多的交换将会引起系统性能低下。内存资源成为系统性能瓶颈的征兆包括:❑很高的内存页交换速率;
❑进程进入不活动状态;
❑交换区所有磁盘的活动次数很高;
❑很高的全局系统CPU利用率;
❑内存不足或出错。

10-磁盘IO

磁盘是指系统用于存储数据的设备。磁盘IO操作主要包括从存储设备上读取数据以及写入数据到存储设备上这两种操作。存数据的时候对应的是写操作,取数据对应的是读操作。一般使用Disk Time(磁盘用于读写操作所占用的时间百分比)和Disk Rate(磁盘交换率)衡量磁盘的读写性能。性能测试过程中,如果被测系统对磁盘读写过于频繁,Disk Rate的值很高,则会导致大量请求处于IO等待的状态,系统负载升高,响应时间变长,吞吐量下降。上述这些现象均表明IO有问题,可能存在磁盘瓶颈,此时可考虑更换更快的硬盘系统。IO资源成为系统性能瓶颈的征兆包括:
❑过高的磁盘利用率;
❑太长的磁盘等待队列;
❑等待磁盘IO时间所占的时间百分比太高;

11-磁盘吞吐量

磁盘吞吐量是指在无磁盘故障的情况下单位时间内通过磁盘的数据量。磁盘吞吐量一般使用每秒总字节数来度量,单位为字节/秒。磁盘指标主要有每秒读写多少MB、磁盘繁忙率、磁盘队列数、平均服务时间、平均等待时间、空间利用率等。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的重要依据,一般情况下磁盘繁忙率要低于70%。

12 网络吞吐量

网络吞吐量是指在无网络故障的情况下单位时间内通过网络的数据量,表示发送和接收字节的速率。网络吞吐量的单位一般是字节/秒。网络吞吐量用于衡量系统网络设备或系统链路的数据传输能力,可通过专门的网络监测工具获取。在实际性能测试中,如果发现系统始终报连接超时错误,而通过手工方式可以正常访问系统,那么可以使用ping指令通过应用服务器IP或网关IP来检查网络的稳定性,如果出现网络严重延迟或丢包,则说明网络不稳定,需要检查网络。网络吞吐量也可以表示网络的带宽占用率,通过该值和网络的带宽比较,可以判断出网络连接速度是不是瓶颈。如图2-6所示,随着横轴并发用户数的增加,网络吞吐量也在增加,网络吞吐量的增长率与并发用户数的增长率基本相同。
在这里插入图片描述
一般情况下,网络吞吐量不能超过设备或链路最大传输能力的70%,如果网络吞吐量指标接近网络设备或链路的最大传输能力,则需要考虑升级网络设备。

13-系统稳定性

系统的稳定性指标通常使用系统的最短稳定时间来表示,即系统在最大容量的80%或标准压力(系统的预期日常压力)下能够稳定运行的最短时间。一般来说,对于正常工作日(8小时)运行的系统,至少应该保证稳定运行8小时以上。对于7天24小时不间断运行的系统,至少应该够保证稳定运行24小时以上。在系统稳定运行的时间段内观察系统的TPS曲线,TPS曲线应该是稳定的,不应出现大幅度波动,且系统各项资源指标没有出现泄漏或异常情况。如果系统不能稳定运行,随着系统上线后业务量增长和长时间运行,系统将会面临性能下降甚至崩溃的风险。

14- 系统扩展性

系统扩展性指应用软件或操作系统以群集方式部署时,增加的硬件资源与获得的处理能力之间的关系。系统扩展性指标的计算公式如下:
在这里插入图片描述

评估系统的扩展能力应通过多轮测试获得扩展性指标的变化趋势。一般扩展能力非常好的应用系统,扩展性指标的变化曲线应是线性或接近线性的。现在很多大规模的分布式系统的扩展能力非常好。理想的系统扩展能力是资源增加几倍,性能就提升几倍。扩展性指标的值至少为70%。

15-内核参数

内核参数操作系统的内核参数主要包括信号量、进程、文件句柄等,如表2-3所示。系统运行期间,一般保证这些参数的值不超过设置的参考值。
在这里插入图片描述
在这里插入图片描述

中间件指标

对于常用的中间件(如Tomcat、WebLogic),指标主要包括JVM、ThreadPool、JDBC
在这里插入图片描述

❑GC频率不能过高,特别是Full GC。在系统性能较好的情况下,一般JVM最小堆大小和最大堆大小分别设置为1024MB比较合适。
❑当前正在运行的线程数不能超过设定的最大值。在系统性能较好的情况下,一般线程数最小值设置为50,最大值设置为200。
❑当前运行的JDBC活动连接数不能超过设定的最大值。在系统性能较好的情况下,一般JDBC最小值设置为50,最大值设置为200。

17 数据库指标

对于常用的数据库(如MySQL),指标主要包括SQL、吞吐量、命中率、连接数等
在这里插入图片描述
❑SQL耗时越小越好,一般情况下为微秒级别;
❑命中率越高越好,一般情况下不能低于95%;
❑锁等待次数越少越好,等待时间越短越好。

18-前端指标

前端指标主要包括页面展示和网络连接消耗的时间
在这里插入图片描述
在实践中,前端页面要尽可能小,因为这样页面展示就会越快,花费的时间就会越短,用户体验就会越好。

性能测试和监测的度量指标样例表

在这里插入图片描述
在这里插入图片描述
本文《企业性能测试:体系构建、落地指导与案例解读》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/107272.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2002-2020年地级市各类制造业企业进入数量数据

2002-2020年地级市各类制造业企业进入数量数据 1、时间:2002-2020年 2、指标:地区、年份、城市代码、所属省份、省份代码、高技术行业企业数量、中高技术行业企业数量、中低技术行业企业数量、低技术行业企业数量 3、样本量:1万多条 4、来…

Android 文字转语音播放实现

1,TextToSpeech类是android自带的,但是部分设备需要支持TTS需要增加语音库,我使用的是讯飞语音(离线的哦)。请自行下载并安装讯飞语音APK,然后到系统设置中设置TTS功能默认使用该选项。有自带TTS库的可以省…

Spring-MVC的文件上传下载,及插件的使用(让项目开发更节省时间)

目录 一、概述 ( 1 ) 介绍 ( 2 ) 讲述 二、上传 三、下载 四、jrebel的使用 五、多文件上传 给我们带来什么收获 一、概述 ( 1 ) 介绍 Spring MVC的文件上传下载是指在Spring MVC框架中实现文件的上传和下载功能。文件上传是指将本地计算机上的文件上传到服务器端…

圆的反演 hdu 4773

欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击。 题目大意 http://acm.hdu.edu.cn/showproblem.php?pid4773 给定2个不相交的圆以及圆外1点P。求过P并且与另两个圆相切(外切)的圆&#xff0c…

解决2K/4K高分屏下Vmware等虚拟机下Kail Linux界面显示问题

问题现象 在我们日常使用VirtualBox、Vmware workstation、Hyper-V等虚拟机安装使用Kali系统,在2K/4K高分辨率电脑下Kali系统界面显示太小,包括各种软件及命令终端字体均无法很直观的看出,影响我们的正常测试及使用。 常规处理思路 很多人…

软件设计师_计算机组成与体系结构

计算机组成与体系结构 文章目录 1.1 数据的表示1.1.1 进制的转换1.1.2 原码 反码 补码 移码1.1.3 浮点数运算 1.2 计算机结构1.3 Flynn分类法1.4 CISC和RISC1.5 流水线技术1.6 存储系统1.7 总线系统1.8 可靠性1.9 校验码 1.1 数据的表示 1.1.1 进制的转换 R进制转十进制 --&g…

【深度学习】Mini-Batch梯度下降法

Mini-Batch梯度下降法 在开始Mini-Batch算法开始之前,请确保你已经掌握梯度下降的最优化算法。 在训练神经网络时,使用向量化是加速训练速度的一个重要手段,它可以避免使用显式的for循环,并且调用经过大量优化的矩阵计算函数库。…

Pytest系列-内置标签skip和skipif 跳过测试用例的详细使用(5)

简介 skip和skipif,见名知意就是跳过测试,主要用于不想执行的代码,标记后,标记的代码不执行。希望满足某些条件才执行某些测试用例,否则pytest会跳过运行该测试用例实际常见场景:根据平台不同执行测试、跳…

VirtualBox宿主机和虚拟机文件互传设置

一、如图1、2、3步骤,设置共享粘贴板和拖放为双向 二、 在启动的虚拟机设置的里面,安装增强插件,然后重启虚拟机。 三、在网络位置就可以看到了

Linux调试器gdb

目录 一、关于Linux调试器gdb 二、gdb的操作 1、quit 2、l 3、r 4、b行号 info b 5、d断点编号 6、n 7、p[变量名] 8、s 9、bt 10、finish 11、display[变量名] 12、until行号 13、c 14、disable/enable断点编号 一、关于Linux调试器gdb 首先,我们…

简简单单教你如何用C语言实现获取当前所有可用网口!

一、获取本机所有可用网卡名 原理: 在 Linux 系统中,/proc 目录是一个位于内存中的伪文件系统。 /proc目录是内核提供给我们的查询中心,通过查询该目录下的文件内容,可以获取到有关系统硬件及当前运行进程的信息,如…

全栈工程师必须要掌握的前端CSS技能

作为一名全栈工程师,在日常的工作中,可能更侧重于后端开发,如:C#,Java,SQL ,Python等,对前端的知识则不太精通。在一些比较完善的公司或者项目中,一般会搭配前端工程师&a…