前言
我们在评估一个系统需要多少个服务器来支撑的时候,一般会涉及到多个点。
- pv
- qps
- 并发
- 平均响应时间
如果你已经搜索过相关站点,你会看到一个公式:并发=qps*平均响应时间
说实话,这个公式很蛋疼,猛地一看让人一脸懵逼。这里我按照我的方式来说一下。
首先将公式变形, QPS = 工作进程数 / 平均响应时间
其次,换算两边时间单位都为秒级, QPS = (1秒 / 秒级平均响应时间)* 工作进程数
再次,将并发
理解为系统的工作进程
,也就是如果并发是100,那么你可以简单的理解为理想情况下100个工作进程同一时间只能处理100个请求。
那么,1秒 / 秒级平均响应时间
就是指每个工作进程1秒能处理多少个请求。
所以,最终得到 QPS
就是系统每秒可以处理的请求数。
如果你日PV是 300W,那么一般情况下,每天80%的请求量都集中在每天20%的时间里。因此我们可以计算出高峰时间的秒级请求量是 3000000 * 0.8 / (3600 * 24 * 0.2) = 139
因此,如果你的系统根据 QPS = 工作进程数 / 平均响应时间
得到的 QPS 大于 139,那么你的系统就可以顶住。
如果小于,那么你有两个选择:
- 需要增加工作进程数,也就是增加服务器数量或者服务器里的工作进程
- 优化系统,降低平均响应时间
⚠️增加服务器的工作进程,并不一定会产生正向效应,因为工作进程越多,那么进程就可能频繁切换,反而导致工作进程不干活。