当前位置: 首页 > news >正文

性能测试-技术指标的含义和计算

所有的技术指标都是在有业务场景的前提下制定的:

业务指标通常由用户提供,包括在线用户数、性能场景等;技术指标通过换算得出,包括时间指标、容量指标、资源利用率指标等;

目录

一、认识技术指标

1、jmeter聚合报告统计的指标

2、服务器监控的指标

3、指标之间的关系

3.1、TPS--响应时间

3.2、TPS--jmeter线程数

二、确定技术指标

1、时间指标(响应时间)

2、容量指标(TPS)

2.1、根据在线用户计算TPS和线程数

2.2、根据高峰业务量计算TPS和线程数

3、资源利用率指标

4、成功率/失败率


一、认识技术指标

1、jmeter聚合报告统计的指标

样本 (Samples)

执行过程中完成的请求数(即成功发送并得到响应的请求数)。 样本数反映了测试的规模,能够显示测试过程中成功处理的请求数量。

响应时间(Response Time)

指的是客户端发出请求到得到响应的整个过程所经历的时间;

平均值 (Average):所有请求的响应时间的算术平均值。它反映了请求的平均响应速度,较低的平均值意味着较好的性能。

中位数 (Median):所有请求响应时间的中位数值,表示有一半的请求响应时间低于此值,另一半高于此值。能够更稳定地反映大多数请求的响应时间,比平均值对极端值的影响更小。

90% 百分位 (90th Percentile):90%的请求响应时间小于或等于该值。表示大部分(90%)请求的响应时间在此值以下。较高的90% 百分位响应时间可能意味着在大多数请求中存在性能波动。

95% 百分位 (95th Percentile):95%的请求响应时间小于或等于该值。

99% 百分位 (99th Percentile):99%的请求响应时间小于或等于该值。

最小值 (Min):所有请求响应时间中的最小值。

最大值 (Max):所有请求响应时间中的最大值。最大值较大可能表明性能波动或存在某些极端延迟。

异常 % (Error %)

测试过程中失败请求的百分比。这个值反映了请求是否成功,如果出现较高的错误百分比,说明系统存在异常。

吞吐量 (Throughput)

吞吐量(Throughput)通常指的是每秒处理的请求数,较高的吞吐量表示系统能够处理更多的请求,性能较好。它可以反应出一个系统的处理能力。

TPS (Transactions per Second):吞吐量可以指每秒的事务数量,即TPS。如果我们要单独测试接口1、2、3,那T就是接口级的;如果我们要从用户的角度来下一个订单,那1、2、3应该在一个T中,这就是业务级的。

接收 KB/sec (Received KB/sec)
每秒钟从服务器接收的字节数,单位为千字节/秒(KB/s)。

发送 KB/sec (Sent KB/sec)
每秒钟向服务器发送的字节数,单位为千字节/秒(KB/s)。

2、服务器监控的指标

CPU 使用率 (CPU Usage)

表示 CPU 的工作负载,衡量当前 CPU 的处理能力是否达到最大值。如果 CPU 使用率过高,可能会导致系统响应缓慢或超负荷运行。

内存使用率 (Memory Usage)

表示当前系统内存的使用量。过高的内存使用率可能导致内存不足,导致交换空间使用过多,从而降低系统性能。

磁盘 I/O 使用率

表示磁盘在单位时间内处于活跃状态的时间比例。如果磁盘 I/O 使用率过高,说明磁盘频繁进行读写操作,这可能会导致响应时间延迟、I/O 队列积压以及其他系统性能瓶颈。

 

3、指标之间的关系

3.1、TPS--响应时间

图中蓝线表示TPS,黄色表示响应时间。

在TPS增加的过程中,响应时间一开始会处在较低的状态,也就是在A点之前。

接着响应时间开始有些增加,直到业务可以承受的时间点B,这时TPS仍然有增长的空间。

再接着增加压力,达到C点时,达到最大TPS。

我们再接着增加压力,响应时间接着增加,但TPS会有下降(请注意,这里并不是必然的,有些系统在队列上处理得很好,会保持稳定的TPS,然后多出来的请求都被友好拒绝)。

最后,响应时间过长,达到了超时的程度。

3.2、TPS--jmeter线程数

上面的一个框中有四个箭头,每个都代表着相同的事务。在这张示意图中,压力工具是4个并发线程,由于每个线程都可以在一秒内完成4个事务,所以总的TPS是16。

TPS=16,RT=1/4s,线程数=TPS*RT=16*(1/4)=4

二、确定技术指标

1、时间指标(响应时间)

看用户对响应时间的要求,对于我接触到的项目,一般都是要求不超过3S

低延迟敏感场景:如在线游戏、金融交易平台、实时聊天应用等,响应时间要求非常严格,通常不应超过 200 毫秒。
一般应用场景:对于普通的电商网站、博客平台等,响应时间要求稍微宽松,但仍希望控制在 2-3 秒 以内。
容忍度差异:大多数用户能容忍稍长的响应时间,但如果用户必须等待超过 5 秒,可能会导致跳出率增加,特别是电商网站和在线服务平台。

2、容量指标(TPS)

TPS反映系统处理能力,业务量越大,TPS值越大。 一般几十-几千,没有特定的标准,与实际的业务场景有关,比如在1分钟内接口调用量为3000,则TPS:3000/60=50

2.1、根据在线用户计算TPS和线程数

对在线的用户做并发度的分析,在很多业务中,并发度都会低于5%,甚至低于1%。拿5%来计算,就是10000用户x5%=500(用户级TPS)

线程数>=TPS*RT   RT为响应时间,如果要求响应时间是100ms,500*(100/1000)=50

并发用户数通常为在线用户的5%-20%,根据行业经验:
10%并发率:适用于常规交互型应用(如新闻网站、企业系统)。
20%+并发率:适用于高交互场景(如在线游戏、秒杀活动)。
金融/政务类系统因操作复杂、思考时间长,并发率可能低至1%-5%。

2.2、根据高峰业务量计算TPS和线程数

首先用统计出来的高峰期调用量按二八原则(80%的业务在20%的时间内完成)估算出TPS的平均值,然后将结果扩大X倍做余量。如果X=1.3,则TPS=(总请求量*80%)/(总时长*20%) *X;

线程数>=TPS*RT   RT为响应时间

例如:查询工资条的场景,有10万人集中在1小时内完成查询,要求的响应时间最长为3S;

TPS=(100000*80%)/(3600*1*0.2)*1.3=144.4444

线程数>=144.4444*3=433

3、资源利用率指标

CPU/内存利用率一般要求不高于75%或者不高于80%

通常情况下,70% 以下 是理想的,但 70%-85% 的范围也是可以接受的。85% 以上 的长期负载则应尽量避免,需要优化或扩展系统资源。

4、成功率/失败率

成功率一般要求不低于99.9%或者不低于99%。


经验有限,若内容有误,欢迎积极指正,谢谢!!!

http://www.lryc.cn/news/602232.html

相关文章:

  • Leetcode_242.有效的字母异位词
  • Apache Commons VFS:Java内存虚拟文件系统,屏蔽不同IO细节
  • python入门篇12-虚拟环境conda的安装与使用
  • 深入Go并发编程:Channel、Goroutine与Select的协同艺术
  • 博士申请 | 荷兰阿姆斯特丹大学 招收计算机视觉(CV)方向 全奖博士生
  • 达梦有多少个模式
  • 亚马逊地址关联暴雷:新算法下的账号安全保卫战
  • 四、计算机组成原理——第6章:总线
  • 基于Hadoop3.3.4+Flink1.17.0+FlinkCDC3.0.0+Iceberg1.5.0整合,实现数仓实时同步mysql数据
  • [VLDB 2025]面向Flink集群巡检的交叉对比学习异常检测
  • SVN与GIT的区别,分别使用与哪些管理场景?
  • Go-Elasticsearch Typed Client查询请求的两种写法强类型 Request 与 Raw JSON
  • 正则表达式 速查速记
  • 10、Docker Compose 安装 MySQL
  • flink yarn 问题排查
  • 同态滤波算法详解:基于频域变换的光照不均匀校正
  • 第4章唯一ID生成器——4.3 基于时间戳的趋势递增的唯一ID
  • 测试用例设计常用方法
  • Datawhale AI夏令营--Task2:理解项目目标、从业务理解到技术实现!
  • 用于 Web 认证的 抗量子签名——ML-DSA 草案
  • me.js - 基于angular的前端模块化框架
  • 【氮化镓】GaN同质外延p-i-n二极管中星形与三角形扩展表面缺陷的电子特性
  • 基于Vue3.0+Express的前后端分离的任务清单管理系统
  • 学习Python中Selenium模块的基本用法(2:下载浏览器驱动)
  • 【前端】Tab切换时的数据重置与加载策略技术文档
  • 三角洲摸金模拟器(简易版本)(开源)
  • Claude Launcher:支持Kimi K2的Claude Code可视化启动工具
  • ofd文件转pdf
  • iphone手机使用charles代理,chls.pro/ssl 后回车 提示浏览器打不开该网页
  • 【Spring Boot 快速入门】二、请求与响应