web☞服务器承载能力计算

阅读量: zyh 2020-10-31 10:48:22
Categories: Tags:

前言

我们在评估一个系统需要多少个服务器来支撑的时候,一般会涉及到多个点。

如果你已经搜索过相关站点,你会看到一个公式:并发=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,那么你的系统就可以顶住。

如果小于,那么你有两个选择:

  1. 需要增加工作进程数,也就是增加服务器数量或者服务器里的工作进程
  2. 优化系统,降低平均响应时间

⚠️增加服务器的工作进程,并不一定会产生正向效应,因为工作进程越多,那么进程就可能频繁切换,反而导致工作进程不干活。