计算系统的QPS

200 阅读2分钟

引言:

  • 面试官:你们系统QPS是多少?
  • 我:几千(4-5千)
  • 面试官:惊讶同时问到,接口响应时间多少?
  • 我:100ms
  • 面试官:并发数多少?
  • 我:几千吧(很虚,瞎说个数吧)
  • 那你们PV多少
  • 几十万
  • 面试官:你有啥问题想问我的么?
  • 我:完犊子,这么快。。。
思考:如何估算系统的QPS,有底气的回答面试官?最起码不是太离谱
1. QPS(queries per second): 系统每秒的请求数。
2. PV (page view):系统每日访问量的总和。(1个用户刷新100次页面,PV的值是100)
3. UV(user view) :  系统每日访问用户的总和。(1个用户刷新100次页面,UV的值是1)
4. 并发数: 同一时刻同时请求的数量和
5. TPS(transaction per second): 每秒事务数

估算方式

1. 假设系统pv是10万

2. 根据28原则,80%的请求发生在20%的时间内  (100000 * 80%) / (86400*20%) = 4.6

3. 所以每秒的请求数约等于5。QPS :约等于 5 。

话外音:终于知道面试官为啥惊讶了,4千的QPS,那PV是多少?亿级流量

4. 假设RT(接口响应时间)是100ms

5. 并发数 =  QPS * RT(单位是:秒)  =  5 * 0.1 = 0.5 

话外音:网络有其他公式,但是有点绕:并发数 = QPS / (1秒/RT) ,想我这种数学不好的要仔细理解下

回过头再看引言:

  • 面试官:你们系统QPS是多少?
  • 我:几千(4-5千)

话外音:牛X吧,我们的系统很强的。。。

  • 面试官:惊讶同时问到,接口响应时间多少?
  • 我:100ms
  • 面试官:并发数多少?
  • 我:500 (5000 * 0.1)
  • 那你们PV多少
  • 我:1亿8百万  5000 * (86400 * 20%)/ 80%
  • 面试官:哇,你们网站真牛,还招人不?
  • 我:...

输入倒逼输出,记录成长点滴;正向反馈自己,共勉。