接触过性能测试的小伙伴一定都听过响应时间(Response Time)、TPS、CPU资源利用率等术语,它们都属于性能测试的指标。本文对性能测试中涉及到的指标做了较为详细的整理。
性能测试指标一般可以分为系统性能指标、资源指标、应用指标:
- 系统性能指标:如并发用户数、TPS(系统每秒处理事务数)、成功率、响应时间。
- 资源指标:如CPU资源利用率、内存利用率、I/O、内核参数(信号量、打开文件数)等。
- 应用指标:如空闲线程数、数据库连接数、GC/FULL GC次数、函数耗时等。
1. 系统性能指标
1.1 响应时间(Response Time, RT)
指标说明
响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。在性能测试中一般以压力发起端到被压测服务器返回处理结果的时间为计量,单位一般为毫秒。
平均响应时间指系统稳定运行时间段内,同一接口多次请求的平均响应时间。通常性能指标中的响应时间都是指平均响应时间。
如下图所示,以一个简单的客户端-服务器-数据库的应用架构来看,响应时间可以被分解为网络传输时间(N1+N2+N3+N4)和应用延迟时间(A1+A2+A3),而应用延迟时间又可以分解为数据库延迟时间(A2)和应用服务器延迟时间(A1+A3)。对响应时间进行分解使得我们能够更有效率得定位性能瓶颈。
Web应用的响应时间分解
参考标准
不同行业不同业务可接受的响应时间是不一样的,需要根据自身情况设定合适的符合用户使用要求的响应时间。
一般情况,对于在线实时交易:
- 互联网企业:500毫秒以下,例如淘宝业务10毫秒左右。
- 金融企业:1秒以下为佳,部分复杂业务3秒以下。
- 保险企业:3秒以下为佳。
- 制造业:5秒以下为佳。
1.2 成功率(Success Rate, SR)
指标说明
成功率指系统在负载情况下,失败成功的概率。可以根据交易数或请求数直接计算得出。对于稳定性较好的系统,其错误大概率由超时引起,即为超时率。
成功率=(失败成功数/交易总数)×100%。
参考标准
不同的系统对成功率的要求不同,但通常会要求成功率不低于99.4%,即错误率不超过千分之六。
1.3 并发用户数
指标说明
性能测试当然要模拟真实的用户访问,那该模拟多少用户来访问系统呢?从服务端承受的压力来考虑,系统毫无疑问是在大量用户同时访问(操作)系统时,承受了最大的压力。服务端在某一时刻承受最大并发访问数时的用户数就是“并发用户数”。在一些性能测试工具中,一般称为虚拟用户数(Virutal User, VUser)
与并发用户数相关的概念还包括系统注册用户数和在线用户数。以记账应用为例,该系统有1000个注册用户,最高峰时一共有500个用户是登录状态,此时有50个用户在页面点击了查看年度账单Tab,100个用户点击了记一笔的提交按钮,80个用户点击了明细页的日期切换查看账单列表,其他用户无操作可能在任意界面查看或填写表单。那么系统注册用户数为1000,在线用户数为500,并发用户数为50+100+80=230。
并发用户数概念说明
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】
标准
一般情况下,性能测试不会测试并发用户数,而是将系统处理能力容量测出来。除了服务器长连接可能影响并发用户数外,系统处理能力不受并发用户数影响,可以用最小的用户数将系统处理能力容量测试出来,也可以用更多的用户将系统处理能力容量测试出来。
1.4 吞吐量
指标说明
吞吐量直接体现软件系统的性能承载能力,是指单位时间内系统处理的用户请求的数量。在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力,另外,在性能调优过程中,吞吐量指标也有重要的价值。一般来说,吞吐量可以用以下几个更具体的指标来衡量:
- RPS(Request per Second):系统每秒处理请求次数,单位是次/秒。
- TPS(Transaction per Second):系统每秒处理事务数,单位是笔/秒。
事务是用户某一步或几步操作的集合,这些操作共同构成一个有意义的业务场景。比如用户对某一个页面的一次请求,用户对某系统的一次登录,商场用户对商品的一次确认支付过程。这些我们都可以看作一个事务。
参考标准
无论TPS、QPS、HPS,此指标是衡量系统处理能力非常重要的指标,越大越好,具体数值还是要根据系统自身业务情况确定。
- 金融行业:1000 TPS~50000 TPS,不包括互联网化的活动。
- 保险行业:100 TPS~100000 TPS,不包括互联网化的活动。
- 制造行业:10 TPS~5000 TPS。
- 互联网电子商务:10000 TPS~1000000 TPS。
- 互联网中型网站:1000 TPS~50000 TPS。
- 互联网小型网站:500 TPS~10000 TPS。
1.5 VUser和TPS的关系
TPS是系统每秒处理事务数,这些事务要靠VUser触发的:
- 假如某个业务响应时间是1秒,那么1个VUser在1秒内能完成1个事务,TPS为1。要想达到 1000 TPS至少需要1000个用户。
- 如果某个业务响应时间是1毫秒,那么1个VUser在1秒内能完成1000个事务,TPS为1000。
因此根据响应时间的快慢,1个用户可以产生 1000 TPS,1000个用户也可以产生1000 TPS。
由此我们可以得出几个结论:
- 系统的性能由TPS决定,跟并发用户数没有多大关系。
- 系统的最大TPS是一定的(在一个范围内),但并发用户数不一定,可以调整。
2. 资源指标
2.1 CPU
CPU指标主要指的CPU使用率、利用率,包括用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。CPU使用率、利用率要低于业界警戒值范围之内,即小于或者等于75%、CPU sys%小于或者等于30%,CPU wait%小于或者等于5%。单核CPU也需遵循上述指标要求。
2.2 内存
现代的操作系统为了最大利用内存,在内存中存放了缓存,因此内存利用率100%并不代表内存有瓶颈,衡量系统内有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般情况下,SWAP交换空间利用率要低于70%,太多的交换将会引起系统性能低下。
2.3 磁盘
磁盘指标主要有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利用率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的重要依据,一般情况下,磁盘繁忙率要低于70%。
2.4 网络I/O
网络吞吐量指标主要有每秒有多少兆流量进出,一般情况下不能超过设备或链路最大传输能力的70%。
3. 数据库指标
常用的数据库例如MySQL指标主要包括SQL、吞吐量、缓存命中率、连接数等,具体如下:
MySQL指标
- SQL耗时越小越好,一般情况下微秒级别。
- 命中率越高越好,一般情况下不能低于95%。
- 锁等待次数越低越好,等待时间越短越好。
END点赞关注不迷路!