Skip to content

面试速答(先看这里)

**一句话结论:**显然不能,这种想法太理想了。

60秒标准回答:

显然不能,这种想法太理想了。 单纯通过机器数量线性推算QPS是不成立的!

因为你的QPS,除了应用本身的影响之外,还瘦太多因素的影响了,包括网络层的负载均衡、服务调用这一层的网络延迟、负载均衡,消息这一层的消息堆积情况,数据存储这一层的线程池情况,CPU,内存等硬件情况都会对整体的QPS造成影响

最简单的例子,单机压测的时候,压测到300,加到10台机器,如果负载均衡算法并不均衡呢?如果给某个单机的QPS分到了500呢?是不是就扛不住了

**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点

回答主线:

  • **要点1:**因为你的QPS,除了应用本身的影响之外,还瘦太多因素的影响了,包括网络层的负载均衡、服务调用这一层的网络延迟、负载均衡,消息这一层的消息堆积情况,数据存储这一层的线程池情况,CPU,内存等硬件情况都会对整体的QPS造成影响。
  • **要点2:**最简单的例子,单机压测的时候,压测到300,加到10台机器,如果负载均衡算法并不均衡呢?
  • **要点3:**就算分的比较均匀,每台机器都不超过300,那问题是单机压测时候数据库也抗到300,而10台机器的时候,数据库可要抗3000啊,3000你可没压测过啊。
  • **要点4:**不只是数据库,还有很多中间件 ,Redis、MySQL、MQ、XXL-JOB等等,甚至一些外部服务,短信服务,支付服务,网关服务等等,都会有影响的。

**记忆锚点:**QPS → 单机压测到300QPS → 数据存储这一层的线程 → XXL-JOB → Redis → MySQL

易错提醒:

  • 显然不能,这种想法太理想了。

加分表达:

  • 最简单的例子,单机压测的时候,压测到300,加到10台机器,如果负载均衡算法并不均衡呢?
  • 数据库如果扛不住了,系统整体不就也扛不住了么。
  • 如果给某个单机的QPS分到了500呢?

追问准备:

  • 最简单的例子,单机压测的时候,压测到300,加到10台机器,如果负载均衡算法并不均衡呢?
  • 如果给某个单机的QPS分到了500呢?

典型回答 ​

显然不能,这种想法太理想了。单纯通过机器数量线性推算QPS是不成立的!

因为你的QPS,除了应用本身的影响之外,还瘦太多因素的影响了,包括网络层的负载均衡、服务调用这一层的网络延迟、负载均衡,消息这一层的消息堆积情况,数据存储这一层的线程池情况,CPU,内存等硬件情况都会对整体的QPS造成影响。

最简单的例子,单机压测的时候,压测到300,加到10台机器,如果负载均衡算法并不均衡呢?如果给某个单机的QPS分到了500呢?是不是就扛不住了。

就算分的比较均匀,每台机器都不超过300,那问题是单机压测时候数据库也抗到300,而10台机器的时候,数据库可要抗3000啊,3000你可没压测过啊。数据库如果扛不住了,系统整体不就也扛不住了么。

不只是数据库,还有很多中间件 ,Redis、MySQL、MQ、XXL-JOB等等,甚至一些外部服务,短信服务,支付服务,网关服务等等,都会有影响的。