一、容量规划基础:什么是容量规划、为什么需要容量规划、容量规划的核心指标
大家好,我是老张。今天咱们聊聊容量规划。
说实话,我刚入行那几年,根本不知道什么叫容量规划。项目上线了,服务器能跑就行。直到有一次双十一,系统直接被打挂了——老板站在我身后,屏幕上全是502。嗯,那滋味,你想想看。
从那以后,我养成了一个习惯:任何系统上线前,先做容量规划。
1.1 什么是容量规划?
容量规划,说白了就是回答三个问题:
- 系统能扛多少流量?
- 流量来了,资源够不够?
- 不够了怎么办?
我个人的理解更直白一些:容量规划就是给系统算一笔账。算清楚你的服务器、数据库、带宽,到底能支撑多少用户同时在线,多少请求同时处理。
核心定义:容量规划是指在给定的服务水平目标(SLA)下,预测并配置系统所需资源的过程。它不是一个一次性动作,而是一个持续迭代的工程实践。
举个例子。你开了一家奶茶店,每天能卖100杯。突然有一天来了200个人排队——这就是容量不足。容量规划就是提前算好:高峰期多少人,需要几个店员、几台机器、多少原料。
系统也是一样的道理。
1.2 为什么需要容量规划?
这个问题我问过很多刚入行的朋友。答案五花八门,但核心就两点:
- 省钱——资源买多了浪费,买少了出事
- 保命——系统挂了,业务就没了
我在项目中遇到过一件事。有个客户,电商平台,平时流量不大。他们觉得没必要做容量规划,服务器就配了4台。结果618大促当天,流量翻了20倍。系统从下午2点开始卡,到4点直接瘫痪。那天的损失,够买100台服务器了。
避坑指南:我曾经见过一个团队,容量规划做得特别细,但全凭拍脑袋。他们估算的QPS和实际差了10倍。为什么?因为没有历史数据支撑。容量规划不是算命,得有数据。
所以,容量规划的核心价值就三个:
- 可预测性——知道系统什么时候会扛不住
- 可控制性——知道该加多少资源
- 可优化性——知道瓶颈在哪,怎么改
1.3 容量规划的核心指标
做容量规划,你得先看懂几个数字。我把它叫做「容量四件套」:
| 指标 | 全称 | 通俗理解 | 单位 |
|---|---|---|---|
| QPS | Queries Per Second | 每秒能处理多少个查询请求 | 次/秒 |
| TPS | Transactions Per Second | 每秒能完成多少个完整事务 | 笔/秒 |
| RT | Response Time | 一个请求从发出到收到响应的时间 | 毫秒 |
| 并发数 | Concurrency | 同一时刻系统正在处理的请求数量 | 个 |
这四个指标,你中有我,我中有你。咱们一个一个说。
1.3.1 QPS(每秒查询数)
QPS是最常用的指标。它衡量的是系统每秒能处理多少个请求。
举个例子。你的网站首页,每秒有1000个人访问,每个访问产生1个请求。那QPS就是1000。
但要注意:QPS不是越高越好。我见过有人把QPS压到5000,结果RT飙到了10秒。用户早跑了。
个人经验:我一般把QPS和RT放在一起看。QPS上去了,RT不能涨太多。如果RT翻倍了,那这个QPS就是虚的。
1.3.2 TPS(每秒事务数)
TPS和QPS很像,但更严格。一个事务可能包含多个查询。
比如你在电商平台下单:
- 查库存(1个查询)
- 扣库存(1个更新)
- 生成订单(1个插入)
- 通知物流(1个调用)
这一整套,才算1个TPS。而QPS可能已经跑了4次。
所以,TPS更能反映系统的真实处理能力。我在做容量规划时,更关注TPS,因为它直接关联业务量。
1.3.3 RT(响应时间)
RT是用户最敏感的指标。你想想看,你打开一个网页,3秒还没出来,你关不关?
我个人的经验是:
- RT < 200ms:用户无感知
- RT 200ms-1s:用户能感觉到,但能接受
- RT > 1s:用户开始烦躁
- RT > 3s:用户大概率流失
重要公式:并发数 = QPS × RT(秒)
这个公式是容量规划的基石。你记住它,后面所有计算都离不开。
1.3.4 并发数
并发数是个容易被误解的指标。很多人以为并发数就是在线用户数,其实不是。
并发数指的是同一时刻正在被处理的请求数量。比如1000个人在线,但只有100个人在操作,那并发数就是100,不是1000。
我在项目中遇到过一个问题:有个团队说他们的系统能支持10000并发。我一测,发现他们说的「并发」其实是「在线用户数」。真正的并发数只有500。这就是典型的指标混淆。
避坑指南:我曾经见过一个架构师,把并发数设得特别高,结果数据库连接池爆了。为什么?因为他没算清楚:并发数 = QPS × RT。RT一长,并发数就上去了,连接池不够用。
1.4 四个指标的关系
这四个指标不是孤立的。它们之间的关系,我用一张图来展示:
这张图想表达的核心意思是:QPS和RT决定了并发数,而TPS是更贴近业务的衡量标准。你调整任何一个指标,其他三个都会跟着变。
1.5 怎么用这些指标做容量规划?
光知道概念没用,得会用。我分享一个实战中的方法:
- 先定目标:业务高峰期,预计QPS是多少?RT要求多少?
- 算并发数:用公式 并发数 = QPS × RT,算出需要的并发能力
- 评估资源:单台服务器能扛多少并发?需要几台?
- 留余量:我一般留30%-50%的余量。为什么?因为流量会波动,系统会有抖动
实战案例:去年我做了一个电商系统的容量规划。业务方说高峰期QPS 5000,RT要求200ms。我算了一下:并发数 = 5000 × 0.2 = 1000。单台服务器能扛200并发,那就需要5台。加上50%余量,最终配了8台。上线后,稳得很。
1.6 小结
容量规划不是什么高深的东西。它就是算清楚:系统能扛多少,需要多少资源,不够了怎么办。
核心指标就四个:QPS、TPS、RT、并发数。它们之间的关系,记住那个公式就够了。
嗯,这一章就到这里。下一章咱们聊聊怎么做压测,怎么拿到这些指标的真实数据。
公众号:蓝海资料掘金营,微信deep3321