TPS 是什么?
TPS 全称是 Transactions Per Second,翻译为每秒事务数,是衡量系统处理能力的核心性能指标之一。
- 事务是 一个完整的业务流程: 比如你在邮箱里处理一封邮件,整个流程(接收、解析、存储、响应)就是一个 “事务”。
- TPS 就是系统每秒能完成多少个这样的完整事务。
QPS 是什么?
QPS 全称是 Queries Per Second,翻译为每秒查询数/请求数,是衡量系统请求处理能力的核心性能指标之一。
- 比如用户刷新邮箱列表、点击查看邮件、发送邮件,每一次客户端向服务器发起的 “请求”,都算一次查询 / 请求。
- QPS 就是系统每秒能响应多少个这样的独立请求。
QPS 是最基础的指标之一,它直接反映了系统的请求吞吐能力。通常来说,QPS 越高,系统的请求处理效率越强;但如果 QPS 过高,超过了系统的处理上限,就会出现请求排队、延迟增加甚至超时的情况。
二者之间的关系?
一个 TPS 可能包含多个 QPS
举个例子:用户发一封邮件,流程是:
- 客户端发起 “提交邮件内容” 请求(QPS+1)
- 服务器请求数据库写入数据(QPS+1)
- 服务器返回 “发送成功” 响应(QPS+1)这一整套流程完成,只算 1 个 TPS,但产生了 3 个 QPS。
适用场景
QPS 更适合衡量接口、数据库、缓存等底层服务的请求处理能力,比如:
- 数据库每秒能处理多少条 SQL 查询
- Redis 每秒能响应多少个读写请求
- TPS 更适合衡量完整业务流程的处理能力,比如下单、转账、邮件发送等。
二者之间的区别? 面试题
tps和qps的区别?
tps是每秒钟通过的事务数,站在客户端角度描述性能
qps是每秒钟处理的请求数,站在服务端角度描述性能
qps是tps的n倍
RT 是什么?
RT 全称是 Response Time ,翻译为响应时间,单次请求/事务的耗时
例如一个完整的 http 请求 (DNS 域名解析-->tcp 三次握手.....)所需时间,亦或者是一个 sql 查询所用的时间等等等
并发数是什么?
同时处理的请求数
核心换算公式(性能测试必用)
1.并发数、QPS、RT 的核心关系
这是性能测试最基础的三角关系,所有换算都基于它:
并发数= QPS * RT(秒)
说明:系统同时处理的请求数,等于每秒请求数 × 每个请求的耗时(换算成秒)。
例子:QPS=100,RT=200ms(0.2 秒),则并发数 = 100×0.2=20。
举个生活例子,秒懂公式 假设: 我们来推演一下: 你会发现,当业务稳定后,店里同时存在的顾客数,永远是 2×3=6 个。 这个「店里同时存在的顾客数」,就是并发数!所以公式就是: 并发数 = QPS RT(秒)为什么并发数= QPS RT(秒) from 豆包
2.QPS 与 TPS 的关系
核心逻辑:1 个事务 = N 个请求(QPS)
QPS= TPS * 每个事务的请求数
说明:用户下单 1 次(1 个 TPS),需要调用 “查询库存 + 扣库存 + 创建订单 + 支付回调”4 个接口(4 个 QPS),则 QPS=TPS×4。
3.峰值 tps/qps 计算
通用步骤:
以下应用 2 / 8 原则
- 按 80-20 原则拆分业务量:高峰期业务量 = 年业务量 × 80%
- 计算高峰期总秒数:高峰期总秒数 = 高峰月数 × 每月工作日 × 每天小时 × 3600 × 20%
- 计算 TPS:TPS = 高峰期业务量 / 高峰期总秒数
- 换算 QPS:如果每个事务对应 N 个请求,QPS=TPS×N。
一些补充:
- 指标误区避坑
❌ 误区:QPS 越高,系统性能越好
✅ 纠正:必须结合 RT 看!如果 QPS=1000,但 RT=5 秒,用户体验极差;反而 QPS=500、RT=100ms 的系统,用户体验更好。
❌ 误区:TPS=QPS
✅ 纠正:只有 1 个事务对应 1 个请求时,两者才相等,绝大多数业务场景下 TPS < QPS。 - 性能压测的设计逻辑
目标:先定业务 TPS,再推导出需要的 QPS、并发数和服务器数量。
例子:邮箱系统目标 TPS=2(每秒处理 2 封邮件),每封邮件对应 5 个请求,则目标 QPS=2×5=10,若单台服务器最大 QPS=5,则需要 2 台服务器。 - 和之前的题目联动回顾
我们之前算的邮箱 TPS≈1.74,现在结合公式延伸:
假设处理 1 封邮件需要调用 3 个接口(接收、存储、写日志),则目标 QPS=1.74×3≈5.22
若每个请求的 RT=200ms,则并发数 = 5.22×0.2≈1.04,也就是系统同时处理的请求数只需 1~2 个,就能支撑业务需求。