3分钟理清QPS、TPS、RT 以及它们之间的关系

在评估系统性能的时候,我们经常会听到 QPS、TPS、RT、吞吐量等等一些概念,包括在一些面试场景下可能也会遇到这些概念,我们来稍微梳理一下。

做一个简单的概念扫盲。

一 QPS

QPS(Queries Per Second) 是每秒的查询率,它表示一台服务每秒响应的查询的次数。

具体来说,QPS 反映了系统在高并发环境下处理请求的能力。一个高 QPS 的系统能够在单位时间内处理更多的请求,从而提供更好的用户体验和更高的吞吐量。相反,QPS 较低的系统可能在面对大量请求时会出现响应延迟或请求失败的情况。

举个栗子:

假设服务器 1 秒响应 500 次请求,那么此时 QPS 就是 500。

二 TPS

TPS(Transactions Per Second) 表示每秒事务处理的数量,一个事务表示客户端向服务器发送请求,然后响应的过程。

举个栗子

比如用户在 jd 上下单的时候,每当用户下单请求被服务器接受到之后,服务需要保存订单、扣减商品库存、确认支付等等这一些列的操作,所有过程都完成后,将结果响应给客户端。这个完整的过程就是一次事务,TPS 则表示每秒内可以完成多少次这样的请求。

整体上来说,一个 TPS 包括了三个部分:

  1. 用户请求服务器
  2. 服务器自己的内部处理
  3. 服务器返回给用户

这样一个完整的过程就是一个 TPS。

有的小伙伴分不清 TPS 和 QPS,简单来说是这样:

  • 如果是对一个查询接口压测,且这个接口内部不会再去请求其它接口,那么 TPS = QPS,否则,TPS ≠ QPS。
  • 如果是容量场景,假设 N 个接口都是查询接口,且这个接口内部不会再去请求其它接口,QPS = N * TPS。

第一点好理解,针对第二点我举一个简单的案例:假设请求一个页面,这就是一个 TPS,这个页面中又发送了 5 次请求向服务器加载数据,那么 QPS=TPS*5

三 RT

RT(Response-time)响应时间,这个表示执行一个请求从开始到最后收到响应数据所花费的总时间,即从客户端发起请求到收到服务器响应结果的时间。

如果忽略网络传输时间,响应时间是处理时间和等待时间的总和,其中:

  • 处理时间是完成请求要求的工作所需的时间
  • 等待时间是请求在被处理之前必须在队列中等待的时间

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

举个栗子

这里,RT = T2 - T1。

四 并发数

系统并发数是指在某一时刻,系统中能够同时处理的请求数量。这个指标通常用来衡量系统在高负载情况下的性能和处理能力。

五 几个概念之间的关系

除了前面第二小节和大家介绍的 TPS 和 QPS 之间的公式之外,再给小伙伴们两个公式:

  • RT = 并发数/QPS
  • QPS = 并发数/RT

好啦,几个常见的概念,小伙伴搞懂了吧~

### QPSTPSRT区别关系 QPS(Queries Per Second)是指每秒查询数,通常用于衡量系统每秒能够处理的请求或查询数量。在 Web 服务器数据库系统中,一个查询可能代表一次 HTTP 请求、一次数据库读取操作或一次 API 调用。QPS 适用于衡量轻量级请求的处理能力,例如搜索引擎的查询、数据库的读取等场景 [^3]。 TPS(Transactions Per Second)是指每秒事务数,通常用于衡量系统完成完整业务流程的能力。一个事务可能包含多个操作,例如一次电商下单操作可能包括检查库存、扣减库存、创建订单等多个步骤。TPS 更适用于衡量复杂业务流程的处理能力,并且其定义在不同业务场景中可能存在差异 [^2]。 RT(Response Time)是指请求从发出到接收到响应所花费的时间,通常以毫秒或秒为单位。RT 直接影响用户体验,是衡量系统响应效率的重要指标。RT 包括网络传输时间、服务器处理时间、数据库查询时间等多个环节的总 [^3]。 ### QPSTPSRT关系 QPS TPS 都可以表示每秒处理的请求数量,区别在于 QPS 通常用于衡量轻量级请求,而 TPS 用于衡量复杂事务。它们与 RT 之间存在密切关系,可以通过以下公式进行估算: ```math QPS = \frac{并发数}{响应时间} ``` ```math TPS = \frac{并发数}{响应时间} ``` 这意味着,当系统的并发数增加时,QPS TPS 可能会随之增加,但 RT 也会相应上升。当系统接近处理极限时,RT 会显著上升,而 QPS TPS 将趋于平稳或下降 。 ### 系统性能评估中的意义 在系统性能评估中,QPS TPS 用于衡量系统的吞吐能力,而 RT 用于衡量系统的响应效率。三者共同构成了性能测试的核心指标体系: - **QPS** 主要用于衡量系统的请求处理能力,尤其适用于高并发、低延迟的场景,如搜索引擎、API 服务等 [^3]。 - **TPS** 更适用于衡量复杂业务流程的处理能力,如银行交易、电商下单等需要多个步骤完成的事务 [^2]。 - **RT** 是用户体验的关键指标,较低的 RT 表示系统能够快速响应用户请求,提升用户满意度 。 在实际性能测试中,通常会通过模拟不同级别的并发用户数,观察 QPSTPS RT 的变化趋势,从而判断系统的性能瓶颈所在。例如,当 RT 显著上升而 QPSTPS 趋于平稳时,说明系统已经达到了处理极限 [^3]。 ### 示例代码:QPSTPSRT 的简单计算 以下是一个 Python 示例,展示如何根据并发数响应时间计算 QPS TPS: ```python def calculate_qps_tps(concurrent_users, response_time): qps = concurrent_users / response_time tps = qps # 在某些场景下 QPSTPS 相等 return qps, tps # 假设 100 个并发用户,平均响应时间为 0.5 秒 qps, tps = calculate_qps_tps(100, 0.5) print(f"QPS: {qps}, TPS: {tps}") ``` 执行结果: ``` QPS: 200.0, TPS: 200.0 ``` 该示例展示了 QPS TPS 的基本计算方式,帮助理解它们与并发数响应时间之间关系。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值