以下是计算机领域中 QPS、TPS 及相关性能名词的详细解释,涵盖定义、计算方法、典型场景和对比:
一、核心概念解析
1. QPS(Queries Per Second)
- 定义:每秒查询数,指系统每秒能处理的 请求数量(如 HTTP 请求、API 调用)。
- 适用场景:
- Web 服务器(Nginx、Apache)
- 缓存系统(Redis)
- 搜索引擎(Elasticsearch)
- 计算公式:
QPS = 总请求量 / 请求耗时(秒)
示例:某 API 1 分钟内处理 6000 次请求 → QPS = 6000 / 60 = 100
2. TPS(Transactions Per Second)
- 定义:每秒事务数,指系统每秒能完成的 完整事务数(一个事务包含多个关联操作)。
- 关键特征:
- 事务需满足 ACID(原子性、一致性、隔离性、持久性)。
- 常见于数据库(如 MySQL 的转账操作:扣款+收款)。
- 计算公式:
TPS = 成功事务总数 / 总耗时(秒)
3. QPS 与 TPS 的关系
指标 | 关注点 | 范围 | 典型场景 |
---|
QPS | 请求吞吐量 | 单次请求 | 查询接口、静态资源 |
TPS | 业务完整性 | 多步骤事务 | 支付、订单提交 |
- 关联性:
- 一次事务(如支付)可能包含多个 QPS(查询库存 → 扣款 → 生成订单)。
- 因此 TPS ≤ QPS(当 1 个事务 = 1 次请求时,两者相等)。
二、其他关键性能指标
1. RT(Response Time)
- 定义:请求从发出到收到响应的 耗时(单位:毫秒)。
- 分层测量:
- 网络传输时间
- 服务器处理时间(CPU + I/O)
- 数据库查询时间
- 健康标准:
- 普通 API:RT < 500ms
- 高频交易系统:RT < 100ms
2. 并发数(Concurrency)
- 定义:系统 同时处理 的请求数量。
- 类型:
- 连接并发数(TCP 连接数)
- 业务并发数(如同时在线用户数)
- 与 QPS/TPS 的关系:
QPS ≈ 并发数 / 平均 RT
示例:并发 1000,RT=50ms → QPS ≈ 1000 / 0.05 = 20,000
3. 吞吐量(Throughput)
- 广义定义:单位时间内系统处理的 数据总量(如 MB/s)。
- 网络场景:带宽吞吐量(如 1Gbps)。
4. IOPS(Input/Output Operations Per Second)
- 定义:存储设备每秒的 I/O 操作次数(读/写)。
- 影响场景:
- 数据库写入(MySQL TPS 受限于磁盘 IOPS)
- 虚拟机磁盘性能
- 参考值:
- SATA SSD:约 10 万 IOPS
- NVMe SSD:约 100 万 IOPS
三、性能指标关联模型
四、实际应用案例
场景:电商大促系统容量评估
- 目标:支撑 10 万用户/秒的抢购请求。
- 关键指标计算:
- QPS 需求:10 万请求/秒(用户层)→ 网关层需承载 20 万 QPS(考虑重试、缓存穿透)。
- TPS 需求:每个订单含 3 个事务(扣库存 → 支付 → 生成订单)→ TPS = 10 万 × 3 = 30 万。
- 数据库压力:
- 需 30 万 TPS → 选择支持 50 万 IOPS 的 NVMe SSD 集群。
- 若单次写操作 RT=5ms → 需数据库连接池 ≥ 1500(公式:并发数 = TPS × RT)。
五、性能测试工具
工具 | 适用指标 | 特点 |
---|
JMeter | QPS、RT、并发数 | 图形化界面,支持分布式压测 |
wrk | QPS、吞吐量 | 轻量级命令行,高并发低开销 |
Sysbench | TPS、IOPS | 专注数据库性能测试 |
ab | QPS | Apache 内置工具,快速简单 |
总结:核心指标对比表
名词 | 全称 | 单位 | 测量目标 | 核心依赖 |
---|
QPS | Queries Per Second | 次/秒 | 请求处理速度 | CPU、网络带宽 |
TPS | Transactions Per Second | 次/秒 | 事务完成速度 | 数据库、磁盘 IOPS |
RT | Response Time | 毫秒 | 单请求延迟 | 代码效率、I/O 性能 |
IOPS | Input/Output Operations Per Second | 次/秒 | 存储 I/O 能力 | 磁盘类型、RAID 配置 |
并发数 | Concurrency | 个 | 系统并行处理能力 | 内存、线程池大小 |
掌握这些指标有助于:
✅ 精准评估系统容量
✅ 快速定位性能瓶颈(如 TPS 低 → 查数据库或磁盘 IOPS)
✅ 设计高可用架构(如 QPS 10万+ 需引入负载均衡+分布式缓存)