程序员如何做「容量规划」:不是拍脑袋,是数据驱动
容量规划是保证系统稳定运行的关键。
不知道系统能承载多少,就像不知道车的油箱有多大——随时可能抛锚。
一、容量规划的目标
1. 保证性能
系统响应时间在可接受范围内。
用户不等待,体验良好。
2. 保证可用性
系统在高负载下不崩溃。
有足够的冗余应对突发流量。
3. 成本控制
不过度配置,节约成本。
按需扩展,不浪费资源。
二、容量规划的步骤
1. 确定基线
- 当前系统的容量(QPS、并发数)
- 当前资源使用(CPU、内存、磁盘、网络)
2. 分析瓶颈
- 找到系统的短板
- CPU、内存、IO、网络,谁是瓶颈
3. 预测增长
- 业务增长率
- 流量峰值
- 季节性波动
4. 制定方案
- 扩容方案(水平扩展/垂直扩展)
- 降级方案
- 应急预案
三、容量评估的指标
1. 性能指标
- QPS(每秒请求数)
- 响应时间(P50/P90/P99)
- 并发数
2. 资源指标
- CPU 使用率(目标 < 70%)
- 内存使用率(目标 < 70%)
- 磁盘 IO
- 网络带宽
3. 业务指标
- DAU(日活跃用户)
- 订单量
- 交易额
四、容量规划的方法
1. 经验法
根据历史数据推算。
简单但不精确。
2. 压测法
通过压力测试找到极限。
准确但耗时。
3. 公式法
根据业务模型计算。
快但不精确。
4. 对比法
参考同类系统的配置。
参考价值高。
五、容量规划的常见错误
❌ 不做规划
"到时候再说"——临时抱佛脚,措手不及。
❌ 过度规划
准备太多,用不上,浪费资源。
❌ 只看平均
不看峰值,平均负载低但峰值可能爆。
❌ 不考虑冗余
按刚好够用的配置,不留余量。
六、一句话总结
容量规划 = 确定基线 + 分析瓶颈 + 预测增长 + 制定方案,方法(经验/压测/公式/对比),核心是保证性能、可用性和成本控制的平衡。