3. 核心概念与术语:QPS/TPS/响应时间/并发数、吞吐量公式、常见混淆点

本章聚焦高并发容量规划中最基础也最易混淆的4个概念,以及核心公式的推导和面试中的常见陷阱。建议先通读概念对比表,再通过问答卡片强化应用能力。
明确概念 QPS / TPS / 响应时间 核心关系 并发数 = QPS × 响应时间 吞吐量公式 Throughput = 并发数 / 响应时间 举例计算 代入数字验证 辨析 混淆点 常见混淆点 ① QPS vs TPS:QPS适用于读场景,TPS适用于事务(含写);② 并发数 vs 连接数:并发是逻辑请求数,连接是物理TCP数;③ 响应时间 vs 延迟:响应包括网络+处理+排队,延迟通常指服务端处理时间。

核心概念对比表

概念 定义 常用单位 与吞吐量的关系
QPS每秒查询数(读请求)次/秒吞吐量 ≈ QPS(读)
TPS每秒事务数(含写/提交)次/秒吞吐量 = TPS(写场景)
响应时间从发起到收到完整响应的时间毫秒/秒与吞吐量成反比
并发数同时处理中的请求数量个与吞吐量成正比
吞吐量公式:Throughput = 并发数 / 平均响应时间(单位:请求/秒);变形:并发数 = Throughput × 响应时间。

面试问答卡片

面试问题:QPS和TPS到底有什么区别?什么时候用QPS,什么时候用TPS?

考察点

  • 是否理解读/写请求的差异
  • 能否根据业务场景选择正确指标
  • 对数据库事务与接口调用的区分

回答框架

  • ① 定义先行:QPS = Queries Per Second,TPS = Transactions Per Second
  • ② 场景区分:读多写少用QPS,事务型操作(下单/支付)用TPS
  • ③ 补充:一个TPS可能包含多个QPS(如一次支付需查询库存、扣款等)

简短示例回答

“QPS通常衡量读接口,比如商品列表查询;TPS衡量完整事务,比如用户下单(包含库存查询、订单创建、支付)。在一次请求中,TPS是外部可感知的事务,而内部可能引发多个QPS,所以监控时要区分场景选指标。”

可能追问

  • “如果你是秒杀系统,你会重点监控QPS还是TPS?”
  • “如何通过日志计算真实TPS?”
  • “一个接口同时有读和写,你如何定义该接口的指标?”
避坑提醒:不要把数据库的tps与接口tps混为一谈。面试中很容易掉进“QPS等于TPS”的陷阱,一定要强调业务语义的差异。

面试问题:请解释吞吐量公式,并给出一个具体计算案例。

考察点

  • 对公式本质的理解(而非死记硬背)
  • 能否将公式应用到实际系统估算
  • 是否了解公式的边界(如资源瓶颈时失效)

回答框架

  • ① 写出公式:Throughput = 并发数 / 平均响应时间
  • ② 解释每个变量含义,强调是“平均”
  • ③ 举例:假设并发用户数=100,平均响应时间=200ms(0.2秒),则吞吐量=100/0.2=500 req/s
  • ④ 说明:实际系统还受CPU、IO等限制,公式给出理论上限

简短示例回答

“系统有200个并发请求,平均响应时间50ms,则理论吞吐量=200/0.05=4000 QPS。但实际还要考虑CPU饱和、线程池大小,公式只是理想估算,在资源耗尽时并发数与吞吐量不再线性增长。”

可能追问

  • “如果吞吐量不再随并发增加而增加,说明什么?”
  • “如何通过压测找到最佳并发数?”
  • “响应时间包含哪些部分?网络延迟会影响公式吗?”
避坑提醒:不要只背公式,要能指出公式成立的假设(系统无瓶颈)。面试官希望听到你主动补充“实际场景中需考虑线性区”这一关键点。

面试问题:如何确定一个系统的“并发用户数”?常见的误区有哪些?

考察点

  • 是否区分“并发数”与“在线用户数”
  • 是否了解线程池/连接池对并发的约束
  • 能否给出业务维度的估算方法

回答框架

  • ① 明确“并发”定义:同一时间正在处理(而非建立连接)的请求数
  • ② 估算方法:DAU × 高峰期访问频次 × 平均请求耗时 / 时间段秒数
  • ③ 举例:100万DAU,高峰期集中在1小时,每人平均操作5次,每次耗时200ms,则并发数≈(100万×5)×0.2/3600≈278
  • ④ 误区:将在线人数当成并发数、忽略响应时间对并发的放大效应

简短示例回答

“并发用户数是同时处理请求的线程数,不是在线用户数。比如一个电商系统,通过业务漏斗估算并发:高峰1小时有30万用户浏览,平均每人点击6次,每次请求耗时150ms,并发≈30万×6×0.15/3600≈750。常见误区是把注册用户数当成并发数,或忽略响应时间

可能追问

  • “如果一个系统的线程池最大只有100,但并发请求有500,会发生什么?”
  • “你如何通过压测数据验证你估算的并发数?”
  • “长连接和短连接的并发数计算有什么不同?”
避坑提醒:千万不要说“并发数等于在线用户数”,这是面试中扣分最多的错误。务必强调“并发数 = 单位时间内正在处理的请求数”,并举例说明在线与并发的差别(如微博深夜在线用户多但并发低)。
本章是后续容量规划、性能优化、系统设计的基础。熟练掌握概念间的换算关系(特别是公式变形),在面试中能快速推导出系统需要扩容的节点数,是面试官眼中“有量级感”的关键表现。