QPS(Queries Per Second)​ 和 ​TPS(Transactions Per Second)的区别

QPS(Queries Per Second)​ 和 ​TPS(Transactions Per Second)​ 是衡量系统性能的两个关键指标,但它们的关注点和应用场景有所不同:


1. 定义与核心区别

指标全称含义适用场景
QPS Queries Per Second 每秒查询次数,表示系统每秒能处理的请求数量​(无论是否完整业务逻辑)。 适用于接口、API、数据库查询等场景。
TPS Transactions Per Second 每秒事务数,表示系统每秒能完成的完整事务数量​(需满足ACID特性)。 适用于数据库、支付、订单等业务系统。
  • 关键区别
    • QPS 统计的是所有请求​(例如HTTP请求、SQL查询),可能包含非事务性操作(如静态资源请求)。
    • TPS 仅统计完整事务​(例如一次支付包含“扣款+记录流水+通知商户”多个步骤,整体算1次TPS)。

2. 计算方式对比

  • QPS公式

    QPS=总请求量时间(秒)QPS =总请求量/时间(秒)

    示例:某API 1分钟处理12万次请求 → QPS = 120,000 / 60 = 2,000。

  • TPS公式

    TPS=成功的事务数时间(秒)TPS =成功的事务数 / 时间(秒)

    示例:支付系统1小时处理3.6万笔订单 → TPS = 36,000 / 3,600 = 10。


3. 典型场景示例

  • 高QPS低TPS

    • 场景:新闻网站首页(大量用户刷新页面,但无复杂事务)。
    • 数据:QPS=10,000(静态请求),TPS≈0(无数据库写入)。
  • 低QPS高TPS

    • 场景:银行转账(单次请求触发多步骤事务)。
    • 数据:QPS=100(HTTP请求),TPS=80(每秒完成80笔转账)。

4. 性能优化侧重点

指标优化方向
QPS - 减少单次请求耗时(缓存、CDN)
- 水平扩展(负载均衡)
- 异步化处理。
TPS - 减少事务锁竞争
- 数据库分库分表
- 保证ACID的同时提高并发(如MVCC)。

5. 关联性与扩展

  • 关系:TPS ≤ QPS(一次事务可能包含多个查询,例如电商下单涉及“查库存+扣减+生成订单”)。
  • 扩展指标
    • RT(Response Time)​:单次请求耗时,影响QPS/TPS上限(QPS = 并发数 / RT)。
    • 并发数:系统同时处理的请求数,与QPS/TPS呈正相关。

总结:QPS反映系统吞吐量,TPS体现业务处理能力。实际应用中需结合两者分析,例如“QPS高但TPS低”可能提示无效请求过多或事务设计不合理。

posted @ 2025-04-15 17:57  测试员阿侠  阅读(1066)  评论(0)    收藏  举报