在面临大促、抢购或新业务上线前,最核心的任务之一就是:系统容量预估。
容量预估过高,会导致资源浪费,增加公司财务成本;预估过低,则可能在流量峰值到来时导致系统宕机。本文将深度解析架构师常用的核心术语,并提供一套可落地的计算模型。
一、 核心指标:你在看什么?
在进行容量预估前,我们需要明确几个核心技术指标:
- QPS (Query Per Second) :每秒查询量。在分布式系统中,指单个进程每秒成功请求服务器的次数。
- UV (Unique Visitor) :独立访客数。24小时内访问站点的 IP 数量(同 IP 不重复计算)。
- PV (Page View) :页面访问量。页面被打开或刷新的次数。
- 并发量:系统同时处理的连接请求数。
二、 带宽预估:如何避免网络塞车?
带宽是系统的“管径”。如果带宽不足,哪怕服务器 CPU 再强,用户也会感到明显的卡顿。
- 平均带宽计算公式
平均带宽=PV×页面平均大小×8统计时间秒平 均 带 宽 equals the fraction with numerator cap P cap V cross 页 面 平 均 大 小 cross 8 and denominator 统 计 时 间 秒 end-fraction
平均带宽=𝑃𝑉×页面平均大小×8统计时间秒
注:乘以 8 是为了将 Byte 转换为 bit,因为带宽单位通常是 bps。
- 峰值带宽(实战参考)
在实际场景中,流量并非平均分布。我们需要引入峰值因子(通常取 5 倍以上):
案例: 假设日均 PV 10w,页面大小 0.4M。
- 平均带宽 ≈ 3.7 Mbps
- 峰值带宽(5倍)≈ 18.5 Mbps
三、 并发量计算:你的服务器能撑住吗?
并发量决定了服务器集群的规模。
- 平均并发连接数
平均并发量=站点PV×页面平均衍生连接数统计时间×Web服务器数量平 均 并 发 量 equals the fraction with numerator 站 点 cap P cap V cross 页 面 平 均 衍 生 连 接 数 and denominator 统 计 时 间 cross cap W e b 服 务 器 数 量 end-fraction
平均并发量=站点𝑃𝑉×页面平均衍生连接数统计时间×𝑊𝑒𝑏服务器数量
注:页面平均衍生连接数指加载一个页面产生的额外 HTTP 请求(如 CSS、JS、图片)。
- 峰值并发量计算
同样的,我们需要根据业务场景乘以峰值因子:
案例: 5台服务器,日均 PV 50w,每个页面 30 个衍生请求。
- 平均并发量 ≈ 35
- 若峰值因子为 6,则峰值并发量为 210。
四、 架构师必备:服务器规模预估模型
这是容量规划的最后一步。基于往年数据和业务增长率,我们可以推算出今年需要采购或部署多少台服务器。
通用预估公式:
服务器预估值=𝑃𝑉×页面衍生连接数×(1+增长率)统计时间/单机并发连接数
避坑指南:
- 动态变化: 今年的页面复杂度(衍生连接数)可能高于往年,需重新测算。
- 冗余设计: 预估值通常需要预留 20%-30% 的安全余量,以应对突发流量。
- 压测校验: 公式是理论,实践中必须结合 Apache JMeter 或 LoadRunner 进行真实压测。
五、 总结
系统容量预估不是“拍脑门”,而是一场严谨的数学推演。作为架构师,我们需要从 PV/UV 出发,推导出 QPS 与 带宽,最后落地到 服务器台数。
互动话题: 你们公司在双11或大促前,峰值因子一般设置成多少?欢迎在评论区交流!