QPS、TPS、RT、并发数、吞吐量分别是什么意思

简介: QPS、TPS、RT、并发数、吞吐量分别是什么意思

首先,他们都是高并发系统中的系统指标

一、QPS:每秒查询

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

二、TPS:每秒事务

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

三:RT响应时间

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

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

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

四、Concurrency,并发数

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

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

五、吞吐量

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

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

  1. QPS(TPS):(Queries Per Second)每秒钟请求/事务数量。
  2. 并发数: 系统同时处理的请求/事务数。
  3. 响应时间: 一般取平均响应时间。

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

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

六、实际举例

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

  • 公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
  • 机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器
  1. 每天300w PV 的在单台机器上,这台机器需要多少QPS?
    ( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
  2. 如果一台机器的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资源,超过最佳线程数-->导致资源的竞争,超过最佳线程数-->响应时间递增。

QPS 和  TPS区别

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

参考文章:一文搞懂高并发性能指标:QPS、TPS、RT、并发数、吞吐量 - 知乎 (zhihu.com)

 

目录
相关文章
|
消息中间件 JavaScript 小程序
面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?
面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?
|
监控 前端开发 JavaScript
不了解 QPS、TPS、RT、并发数、吞吐量,劝你简历别写熟悉高并发
分布式、微服务、Service Mesh目前都是大家耳熟能详的词语了,现在随便一个互联网公司说出来大家都是在搞微服务。 但我们搞来搞去,怎么样来衡量一个应用当前的状态到底是怎么样的?到底需不需要扩容?是需要横向扩容还是进行项目重构?
|
2月前
|
缓存 搜索推荐 数据挖掘
TPS和QPS是什么?都是什么区别?
TPS和QPS是什么?都是什么区别?
2833 4
|
并行计算 前端开发 JavaScript
【修正版】QPS、TPS、RT、并发数、吞吐量理解和性能优化深入思考
在了解qps、tps、rt、并发数之前,首先我们应该明确一个系统的吞吐量到底代表什么含义,一般来说,系统吞吐量指的是系统的抗压、负载能力,代表一个系统每秒钟能承受的最大用户访问量。
4940 1
【修正版】QPS、TPS、RT、并发数、吞吐量理解和性能优化深入思考
|
7月前
|
测试技术
TPS、QPS和系统吞吐量的区别和理解
TPS、QPS和系统吞吐量的区别和理解
985 0
|
测试技术
性能测试(21)——常用平均并发数计算公式
PV:(Page View):即页面访问量,每打开一次页面PV计数+1,刷新页面也是。PV只统计页面访问次数。 UV(Unique Visitor):唯一访问用户数,用来衡量真实访问网站的用户数量。 一般用UV统计用户活跃数,用PV统计用户访问页面的频率
1014 0
性能测试(21)——常用平均并发数计算公式
|
弹性计算 关系型数据库 MySQL
增加并发数后,TPS增加, IOPS却下降现象分析
增加并发数后,TPS增加, IOPS却下降现象分析
增加并发数后,TPS增加, IOPS却下降现象分析
|
测试技术 应用服务中间件 Apache
QPS、TPS、并发用户数、吞吐量等定义
QPS (Queries Per Second) 是每秒查询率 ,是一台服务器 每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内 所处理流量多少的衡量标准, 即每秒的响应请求数,也即是最大吞吐能力。
3846 0
|
关系型数据库 MySQL 测试技术
【性能测试】三、TPS 和并发数是什么关系?
【性能测试】三、TPS 和并发数是什么关系?
【性能测试】三、TPS 和并发数是什么关系?
|
SQL 监控 前端开发
【性能测试】二、TPS、QPS、RT和吞吐量这些都是什么?
【性能测试】二、TPS、QPS、RT和吞吐量这些都是什么?
【性能测试】二、TPS、QPS、RT和吞吐量这些都是什么?