性能测试-技术指标的含义和计算
所有的技术指标都是在有业务场景的前提下制定的:
业务指标通常由用户提供,包括在线用户数、性能场景等;技术指标通过换算得出,包括时间指标、容量指标、资源利用率指标等;
目录
一、认识技术指标
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%。
经验有限,若内容有误,欢迎积极指正,谢谢!!!