首页 > 其他分享 >高并发性能指标:QPS、TPS、RT、并发数、吞吐量

高并发性能指标:QPS、TPS、RT、并发数、吞吐量

时间:2023-01-23 14:44:14浏览次数:39  
标签:RT 请求 响应 并发 线程 QPS TPS

高并发系统系统指标

高并发系统核心指标

一、QPS,每秒查询

QPS:Queries Per Second是衡量信息检索系统(例如搜索引擎或数据库)在一秒钟内接收到的搜索流量的一种常见度量。该术语在任何请求-响应系统中都得到更广泛的使用,更正确地称为每秒请求数(RPS:Request Per Second)。

高性能、高并发、高可用(简称“三高”)要求的系统必须注意其QPS,才能知道何时扩容系统以处理更多请求。

二、TPS,每秒事务

TPS:是Transactions Per Second的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户端向服务器发送请求然后服务器做出响应的过程。客户端在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

QPS vs TPS:QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。如,访问一个页面会请求服务器2次,一次访问,产生一个“T”,产生2个“Q”。

来自维基百科的解释如下:

在非常普通的意义上,术语每秒事务数是指每秒由某些实体执行的原子动作的数量。从更严格的角度来看,DBMS供应商和用户社区通常使用该术语来表示每秒执行的数据库事务数。
最近,该术语已被用来描述一种加密货币的交易率,例如运行比特币区块链的分布式网络。能够适应实际交易量的交易速率的发展是加密货币技术研究的重要领域。

 

三、RT,响应时间

RT(Response-time)响应时间:执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间。该请求可以是任何东西,从内存获取,磁盘IO,复杂的数据库查询或加载完整的网页。

暂时忽略传输时间,响应时间是处理时间和等待时间的总和。处理时间是完成请求要求的工作所需的时间,等待时间是请求在被处理之前必须在队列中等待的时间。

响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。

四、Concurrency,并发数

并发数是指系统同时能处理的请求数量,这个也反应了系统的负载能力。

并发意味着可以同时进行多个处理。并发在现代编程中无处不在,网络中有多台计算机同时存在,一台计算机上同时运行着多个应用程序。

五、吞吐量

系统的吞吐量(承压能力)和处理对CPU的消耗、外部接口、IO等因素紧密关联。单个处理请求对CPU消耗越高,外部系统接口、IO速度越慢,系统吞吐能力越低,反之越高。

系统吞吐量有几个重要指标参数:QPS(TPS)、并发数、响应时间。

QPS(TPS):(Queries Per Second)每秒钟请求/事务数量。

并发数: 系统同时处理的请求/事务数。

响应时间: 一般取平均响应时间。

理解了上面三个指标的意义之后,就能推算出它们之间的关系:

QPS(TPS)= 并发数/平均响应时间

并发数 = QPS*平均响应时间

六、实际举例

我们通过一个实例来把上面几个概念串起来理解。按二八定律来看,如果每天 80% 的访问集中在 20% 的时间里,这 20% 的时间就叫做峰值时间。

公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)

机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器

每天300w PV 的在单台机器上,这台机器需要多少QPS?

( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)

如果一台机器的QPS是58,需要几台机器来支持?

139 / 58 = 3

七、最佳线程数、QPS、RT

1、单线程QPS公式:QPS=1000ms/RT

对同一个系统而言,支持的线程数越多,QPS越高。假设一个RT是80ms,则可以很容易的计算出QPS,QPS = 1000/80 = 12.5。

多线程场景,如果把服务端的线程数提升到2,那么整个系统的QPS则为 2*(1000/80) = 25,可见QPS随着线程的增加而线性增长,那QPS上不去就加线程呗,听起来是这个道理,但是往往现实并非如此。

2、QPS和RT的真实关系

我们想象中的QPS、RT关系如下,

实际的QPS、RT关系如下,

3、最佳线程数量

刚好消耗完服务器的瓶颈资源的临界线程数,公式如下

最佳线程数量=((线程等待时间+线程cpu时间)/ 线程cpu时间)* cpu数量

特性:

在达到最佳线程数的时候,线程数量继续递增,则QPS不变,而响应时间变长,持续递增线程数量,则QPS开始下降。

每个系统都有其最佳线程数量,但是不同状态下,最佳线程数量是会变化的。

瓶颈资源可以是CPU,可以是内存,可以是锁资源,IO资源,超过最佳线程数-->导致资源的竞争,超过最佳线程数-->响应时间递增。

 

原文地址:https://zhuanlan.zhihu.com/p/337708438

标签:RT,请求,响应,并发,线程,QPS,TPS
From: https://www.cnblogs.com/songjuntao/p/17065165.html

相关文章

  • Visual-Inertial Monocular SLAM with Map Reuse
    摘要-近年来,在视觉里程计技术中有许多优秀的作品,其目的是比较高精度,鲁棒地计算传感器增量运动。然而这些方法都缺乏回环的能力,即使传感器连续重新回到同一地方,轨迹的估计会......
  • Inertial-Only Optimization for Visual-Inertial Initialization
    摘要-我们首次将视觉惯性初始化表述为最大后验(MAP)估计意义上的最优估计问题。这允许我们适当地考虑IMU测量的不确定性,这在以前的方法中被忽略,这些方法要么解决代数方程组,要......
  • http和https到底啥关系?
    对应测试人员都会听过http请求和响应.在这里给大家介绍http相关的知识一.http和https基本概念HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答......
  • Using Semaphores in Delphi, Part 2: The Connection Pool
    Abstract:Semaphoresareusedtocoordinatemultiplethreadsandprocesses.Thatsemaphoresprovidemultiplethreadswithsimultaneousaccesstoasharedresou......
  • js 粒子点击鼠标(particle)
    直接贴js代码在script里面就行了constparticle_canvas=document.createElement("canvas");particle_canvas.setAttribute("id","particle_canvas")document.querySel......
  • RTX5 内核中断配置详解
    Cortex-M中断优先级机制Cortex-M4的内核中断(也称异常)的优先级通过core_cm4.h文件中SCB_Type结构的SCB->SHP[0]~SCB->SHP[11]成员进行配置:通过上图看到,该寄存器可以......
  • Flink消费Kafka:Timeout of 60000ms expired before the position for partition tv_lo
    Timeoutof60000msexpiredbeforethepositionforpartitiontv_log-1couldbedetermined大概意思:消费kafka,在某个分区连接超时超时了60000ms这个时候要检查:C:\Win......
  • dart遍历的时候操作list
    实际上,在遍历的时候,list对应的内存是被锁住的Listlist=[1,2,3,4];//这里使用了箭头函数,后面的表达式为true时会删除当前值list.removeWhere((value)=>value=......
  • Quartz 使用教程
    首先说说,为什么要写这篇文章:Quartz的v2.3.2版本改动比较大,目前网上的资料都是旧版本,很缺乏相关资料很多资料讲解非常不全面,例如QuartzListener的介绍和使用基本缺......
  • Cert Manager 申请SSL证书流程及相关概念-三
    中英文对照表英文英文-K8SCRD中文备注certificatesCertificate证书certificates.cert-manager.io/v1certificateissuersIssuer证书颁发者issuers......