性能测试-理论基础

本文详细介绍了压测的概念、原因,涵盖压测的基本术语,如压力测试、并发测试和耐久性测试,以及HTTP响应码的含义。重点讲解了压测中的关键指标,如并发、RPS、TPS、响应时间等,并涉及机器性能指标,如CPU、内存、磁盘和网络吞吐量。最后,梳理了压测流程中的关键指标,包括压测场景、串联链路、检查点等,以及访问指标如PV、UV和并发用户。
摘要由CSDN通过智能技术生成

压测是什么

压测,即压力测试,是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患。

主要检测服务器的承受能力,包括用户承受能力(多少用户同时玩基本不影响质量)、流量承受等。

为什么要压测

  • 通过压测(模拟真实用户的行为),测算出机器的性能(单台机器的QPS),从而推算出系统在承受指定用户数(100W)时,需要多少机器能支撑得住。
  • 在上线前为了应对未来可能达到的用户数量的一次预估(提前演练),压测以后通过优化程序的性能或准备充足的机器,来保证用户的体验。

压测实施流程

在这里插入图片描述

基本术语

压测类型

类型说明
压力测试(Stress Testing)也称之为强度测试,测试一个系统的最大抗压能力,在强负载(大数据、高并发)的情况下,测试系统所能承受的最大压力,预估系统的瓶颈
并发测试(Concurrency Testing)通过模拟很多用户同一时刻访问系统或对系统某一个功能进行操作,来测试系统的性能,从中发现问题(并发读写、线程控制、资源争抢)
耐久性测试(Configuration Testing)通过对系统在大负荷的条件下长时间运行,测试系统、机器的长时间运行下的状况,从中发现问题(内存泄漏、数据库连接池不释放、资源不回收)

HTTP响应码

响应码说明
3xx表示客户端需要采取进一步的操作才能完成请求。通常这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Location域中指明。
4xx表示客户端发生了错误,妨碍了服务器的处理。
5xx表示服务器无法完成明显有效的请求。一般代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。如:502 Bad Gateway,504 Gateway Time-out

压测指标

指标说明标准
并发(Concurrency)指一个处理器同时处理多个任务的能力(逻辑上处理的能力) ,通过将占用CPU的时间分隔成时间片进行轮转使用
并行(Parallel)多个处理器或者是多核的处理器同时处理多个不同的任务(物理上同时执行),互不干扰且不抢占资源
RPS(每秒钟查询数量 Request Per Second)服务器每秒钟处理请求数量 (req/sec 请求数/秒 一段时间内总请求数/请求时间)
事务(Transactions)是用户一次或者是几次请求的集合。如 【支付 & 扣钱 & 减库存】 作为一个集合为原子操作
TPS(每秒钟处理事务数量 Transaction Per Second)服务器每秒钟处理事务数量(一个事务可能包括多个请求)
  • 金融行业:1000 TPS~50000 TPS,不包括互联网化的活动。
  • 金融企业:1秒以下为佳,部分复杂业务3秒以下。
  • 保险行业:100 TPS~100000 TPS,不包括互联网化的活动。
  • 制造行业:10 TPS~5000 TPS。
  • 互联网电子商务:10000 TPS~1000000 TPS。
  • 互联网中型网站:1000 TPS~50000 TPS。
  • 互联网小型网站:500 TPS~10000 TPS。
HPS(Hits Per Second)每秒点击次数,单位是次/秒
请求成功数(Request Success Number)在一次压测中,请求成功的数量
请求失败数(Request Failures Number)在一次压测中,请求失败的数量
错误率(Error Rate)在压测中,请求成功的数量与请求失败数量的比率不同系统对错误率的要求不同,但一般不超出千分之六,即成功率不低于99.4%。
响应时间RT从客户端发送一个请求开始,到客户端接收到服务端返回的响应所经历的时间。响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。
  • 互联网企业:500毫秒以下,例如淘宝业务10毫秒左右。
  • 金融企业:1秒以下为佳,部分复杂业务3秒以下。
  • 保险企业:3秒以下为佳。
  • 制造业:5秒以下为佳。
最大响应时间(Max Response Time)从发出请求或指令系统做出的反映(响应)的【最大时间 】
最少响应时间(Mininum Response Time)从发出请求或指令系统做出的反映(响应)的【最少时间】
平均响应时间(Average Response Time)从发出请求或指令系统做出的反映(响应)的【平均时间】
Throughput(吞吐量)在一次性能测试过程中网络上传输的数据量的总和。
吞吐率单位时间内网络上传输的数据量,也可以指单位时间内处理客户请求数量。

机器性能指标

指标定义及解释标准
CPU中央处理器是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。CPU Load:系统正在干活的多少的度量,队列长度。系统平均负载。CPU指标主要指的CPU使用率、利用率,包括用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。CPU使用率、利用率要低于业界警戒值范围之内,即小于或者等于75%、CPU sys%小于或者等于30%,CPU wait%小于或者等于5%。单核CPU也需遵循上述指标要求。CPU Load要小于CPU核数。
Memory内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。现代的操作系统为了最大利用内存,在内存中存放了缓存,因此内存利用率100%并不代表内存有瓶颈,衡量系统内有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般情况下,SWAP交换空间利用率要低于70%,太多的交换将会引起系统性能低下。
磁盘吞吐量磁盘吞吐量是指在无磁盘故障的情况下单位时间内通过磁盘的数据量。磁盘指标主要有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利用率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的重要依据,一般情况下,磁盘繁忙率要低于70%。
网络吞吐量网络吞吐量是指在无网络故障的情况下单位时间内通过的网络的数据数量。单位为Byte/s。网络吞吐量指标用于衡量系统对于网络设备或链路传输能力的需求。当网络吞吐量指标接近网络设备或链路最大传输能力时,则需要考虑升级网络设备。网络吞吐量指标主要有每秒有多少兆流量进出,一般情况下不能超过设备或链路最大传输能力的70%。

压测流程中的指标

指标说明
压测场景压测场景是若干个基于HTTP/HTTPS的URL/API的组合(例如登录、加入购物车)
串联链路指一组压测API的有序集合(类似于事务),具有业务含义。压测API之间只有在同一个串联链路中才能进行入参和出参关联(运行时数据传递)。两个不同的串联链路之间相互独立,通常不会存在参数的传递依赖(使用数据导出指令的情况除外)。如:登录 → 浏览产品B → 加入购物车 → 提交订单
出参从一个压测API的应答中截取需要的内容作为出参,供后续的压测API作为参数使用。如:从登录接口返回的token中作为加购接口的请求头参数,实现登录认证
检查点(断言)一般用于标记业务成功与否,从而验证压测请求的响应是否符合预期。有时候响应码是200并不代表业务处理成功,有可能需要判断响应体内的内容。如:用户登录接口,添加断言校验响应结果中包含token才算成功。
集合点使模拟用户在集合点处等待,满足条件后一次性释放所有等待的用户,继续后续业务,例如双十一00:00整点下单场景。
条件跳转根据出参,改变串联链路请求的执行路径,支持跳转、继续和结束等。
思考时间模拟用户在前后两个节点间思考、反应花费的时间,支持多种模式。
数据导出用于导出某个串联链路中的数据(如Cookie、出参或通过数据指令定义的参数),供其他串联链路使用,在全局共享导出数据。
数据指令通过对前置压测API的出参、字符串或函数做二次处理,定义新的参数,提供给串联链路中的后续压测API使用。
文件参数

访问指标

指标说明
PV(页面浏览量 Page View)用户每打开1个网站页面,记录1个PV。用户多次打开同一页面,PV值累计多次
UV(网站独立访客 Unique Visitor)通过互联网访问、流量网站的自然人。1天内相同访客多次访问网站,只计算为1个独立访客 。即去重的PV数
并发用户并发用户数指在同一时刻内,登录系统并进行业务操作的用户数量。 并发用户数对于长连接系统来说最大并发用户数即是系统的并发接入能力。对于短连接系统而言最大并发用户数并不等于系统的并发接入能力,而是与系统架构、系统处理能力等各种情况相关。例如系统吞吐能力很强,加上短连接一般都有连接复用,往往并发用户数大于系统的并发接入连接数。所以对于大部分短连接类型HTTP的系统,吞吐量模式(QPS模式,Request Per Second)比较适合。在性能测试工具中,一般称为虚拟用户数(Virtual User)

参考文档:

go-stress-testing

阿里云PTS文档

性能测试系列文章合集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值