首页 > 其他分享 >常用的性能指标

常用的性能指标

时间:2024-07-11 09:43:05浏览次数:10  
标签:常用 请求 用户 接口 响应 时间 用户数 性能指标

两种性能指标:

① 业务指标:业务场景

② 技术指标

  时间指标:接口响应时间、业务响应时间

  容量指标:接口容量、业务容量

  资源利用率指标:操作系统:CPU、IO、Disk、Mem 

 

(1)并发

  狭义:指同一时间点执行相同的操作(如:秒杀)

  广义:

    同一时间点,向服务器发起的请求(可能是不同的请求)

    只要向服务器发起请求,那么服务器在这一时间点内都会收到请求(不管是不是同一个请求)

 

(2)并发用户数

  同一时间点,发出请求的用户数,一个用户可以发出多个请求

  场景不一定是同一个

  和 CPU、响应时间有关系

 

  和并发的关系:假设有 10 个用户数,每个用户同一时间点内发起 2 个请求,那么服务器收到的请求并发数就是 20

  场景一:

    不同身份的用户,访问不同的页面或发起不同的请求(广义并发),观察 CPU 使用率和响应时间

    

  场景二:

    所有用户,同一个时间点发送同一个请求(狭义并发),观察 CPU 使用率和响应时间

 

(3)系统用户数:

  系统累计注册用户数,不一定在线

  注册之后也可以一直不在线

  因为用户信息是存在数据库的,而数据库数据就是存在磁盘中,所以系统用户数和磁盘空间有关系。

 

  场景一:

    写一个脚本添加很多条用户信息插入到数据库

    目的:测试系统容量,方便了解系统的最大容量

    实际项目中,当系统容量接近最大容量时,系统需要进行容量扩容(加磁盘空间),否则会爆掉

 

(4)在线用户数:

  在线用户可能是正常发起请求,也可能只是挂机啥操作都没有,不一定同时做某一件事情

  在线用户可能是游客(未注册的用户),也可能是系统用户(已注册的用户)

  在线用户数 ≠ 并发用户数

  和内存有关

  

  场景一:

    使用 Jmeter 让不同的用户不断上线,且不下线和发起其他请求,看看内存使用情况

    实际场景:12306 以前很多用户在线,响应时间会拉的很长

 

(5)线程数:

    在 jmeter 中,线程数和并发用户数等价【和 CPU、响应时间有关系】

 

(6)事务:

    客户端向服务器发送请求,然后服务器做出响应的过程

    登录、注册、下单等功能都属于一个事务

    一个事务可能会发起多个请求

    

    jmeter:默认一个接口请求就是一个事务,但也支持多个接口整合成一个事务

    注意:若一个业务或事务有多个接口,那么多个单接口的性能指标值相加 - 业务或事务的性能指标值

 

(7)响应时间(Response Time):

    响应时间对于性能测试来说:

      从发起请求到收到请求响应的时间

      包含了:Request Time 和 Response Time

      等价于:发起请求网络传输时间 + 服务器处理时间 + 数据库系统处理时间 + 返回响应网络传输时间

    

    对用户所感知的响应时间包括:

    用户客户端渲染时间 + 请求/响应数据网络传输时间 + 应用服务器处理时间 + 数据库系统处理时间

    重点:在做性能测试时,要尽可能的降低网络传输时间,这样最终得出的 RT 会无限接近服务器处理时间

 

    事务请求响应时间:完成单个事务所用的时间,可能包含多个请求。

    响应时间多少合理?

      标准是:2:很好、5:可以接收、8:不能接收

 

(8)TPS(每秒事务数,最主要的指标):服务器每秒处理事务数,衡量服务器处理能力的最主要指标

  定义 TPS 的粒度:

    一般会根据场景的目的来定义 TPS 的粒度

    接口层性能测试:T 可以定义为接口级

    业务级性能测试:T 可以定义为每个业务步骤和完整的业务流

   如果单独测试接口 1、2、3,那么 T 就是接口级

  如果从用户角度下订单,那 1、2、3 都在同一个 T 中,就是业务级

  结合实际业务涉及,库存服务一定是同步,而积分服务可以是异步,所以这个下单业务,可以只看作由 1、2 这两个接口组成,但是 3 接口还是要监控分析

  所以,性能中 TPS 中 T 的定义取决于场景的目标和 T 的作用

  

(9)QPS(Queries per Second):每秒查询率,在数据库中每秒执行 SQL 数量

    一个请求可能会执行多条 SQL,某些企业可能会用 QPS 代替 TPS,也是衡量服务端处理能力的一个指标

 

(10)RPS(Request per Second):每秒请求数,用户从客户端发起的请求数

 如果一个用户点击了一次,发出来 3 个 HTTP Request,调用了 2 次订单服务,调用了 2 次库存服务,调用了 1 次积分服务、

问:Request 数量如何计算

答:3+2+2+1 = 8? 不,应该是 3,因为发出了 3 个 Request,而调用服务会有单独的描述,以便做性能统计

 

(11)HPS(Hit per Second):点击率,每秒点击数

  可以直接理解为用户在界面上的点击次数

  一般在性能测试中,都用来描述 HTTP Request,那么它代表每秒发送 HTTP 请求的数量,和 RPS 概念完全一样

  HPS 越大对 Server 的压力越大

 

(12)吞吐量(Throughput):单位时间内,网络处理的请求数量(事务/s)

    网络没有瓶颈时,吞吐量=TPS

 

(13)吞吐率:单位时间内,在网络传输的数据量的平均速率(KS/S)

 

 

(14)资源利用率:服务器资源的使用程度,比如服务器(应用、服务器)的CPU利用率,内存利用率,磁盘利用率,网络带宽利用率

    一般不超过 80%

 

(15)Think Time 思考时间

  业务角度:

    它指的是用户进行操作时,每个请求之间的时间间隔

    比如:假如购物车后,多久之后会点击下单?浏览一个商品多久会加入购物车

  

  性能测试角度:

    为了模拟用户两次操作之间的时间间隔,才有 Think Time,更加真实的模拟用户的真实操作

    它和用户行为有关系,所以应该分析的是用户行为而非用户数

 

原文:https://www.cnblogs.com/poloyy/p/13130623.html

    

标签:常用,请求,用户,接口,响应,时间,用户数,性能指标
From: https://www.cnblogs.com/xianyumaixianyu/p/18295425

相关文章

  • C语言-常用算法-6
    题目:一个球从100米高度自由下落,每次落地后反弹回原来高度的一半;再落下,那么它在第10次落地时,共经过多少米?第十次反弹多高。源代码:#include<stdio.h>intmain(){doubleheight=100,length_total=100;for(inti=0;i<10;i++){height/=2;......
  • C语言-常用算法-5
    题目:如果一个渔夫从2011年1月1日开始每三天打一次鱼,两天晒一次网,编程实现输入2011年1月日后的任意日期,输入该渔夫是在打鱼还是晒网。源代码:#include<stdio.h>intmain(){intmonth_days[12]={31,28,31,30,31,30,31,31,30,31,30,31};intyear,month,day;......
  • LLM大模型: 常用的数据清洗方法总结
    LLM的三大要素:算力:算力的本质是拼财力,普通人是无力改变的;算法/模型结构:目前最流行的还是transformer架构,各种LLM都是基于transformer改细节,暂时没有用新的框架替代transformer。至于后续manba会不会替代transformer架构,有待观察!数据:这块是做LLMpre-train或fine-tune最大......
  • C++中各类常用算法的总结以及使用
    1.常用算法文章目录1.常用算法1.常用遍历算法1.for_each2.transform2.常用查找算法1.find2.find_if3.adjacent_find4.binary_search5.count6.count_if3.常用排序算法1.sort2.random_shuffle3.merge4.reverse4.常用拷贝和替换算法1.copy2.replace3.repla......
  • 分享一个常用库 .NET Framework 4.7.2 Windows 7 专用版
    版本特点Microsoft.NETFramework(微软NET框架运行库)是Windows操作系统用于.NETFramework构建的应用程序所需的基础类型库组件。NETFramework是继WindowsDNA之后的一个全新软件开发平台,微软.NET框架是以一种采用系统虚拟机运行的编程平台,以通用语言运行库为基础,支持多国语言的......
  • bat常用指令整理
    1.关闭命令行回显功能@echooff一般用在第一行,非常常用2.注释语句双冒号::和rem,放于行首3.提示信息echo"信息"4.设置变量值setxxx_dir="%cd%"setpython="xxx.python.exe"调用变量时需在前面加%%比如%python%xxx.py注意设置环......
  • Redis安装部署和常用命令
    一、Redis基本概念端口号:63791.关系型数据库和非关系型数据库区别 SQLNoSQL存储结构二维表格结构不固定的,键值对、文档、索引、图形结构、时间序列等扩展方式纵向扩展(提升硬件性能)横向扩展(增加服务器节点数量)事务支持基于ACID原则,事务控制更稳定,细粒度更高......
  • Java-常用API
    1-JavaAPI:指的就是JDK中提供的各种功能的Java类。2-Scanner基本使用Scanner:一个简单的文本扫描程序,可以获取基本类型数据和字符串数据构造方法:Scanner(InputStreamsource):创建Scanner对象System.in:对应的是InputStream类型,可以表示键盘输入Scannersc=n......
  • 常用的前端框架有哪些?
    常用的前端框架有Bootstrap框架、React框架、Vue框架、Angular框架、Foundation框架等等现在越来越多的前端框架开始出现,这为我们的项目需求带来了极大的方便。本文将为大家详细介绍几种前端框架,有一定的参考作用,希望对大家有所帮助。常用框架介绍:Bootstrap框架Bootstrap是......
  • 常用镜像源
    最近在一台受限的Ubuntu上配置和使用开源项目。由于该服务器暂时无法访问墙外网站,故找了很多镜像网站作为替代pip(pypi)清华镜像源https://pypi.tuna.tsinghua.edu.cn/simple使用方法:终端命令pipinstall包名-ihttps://pypi.tuna.tsinghua.edu.cn/simpleAnaconda清......