1. 容量规划基础:定义、目标与核心原则

1.1 容量规划的定义

容量规划(Capacity Planning)是指在给定服务水平目标(SLO)的前提下,系统性地确定未来一段时间内所需的 IT 资源类型、数量与时间点,并制定资源供给策略的过程。它不是一个一次性活动,而是贯穿系统全生命周期的持续管理实践。

核心定义公式:
容量规划 = 需求预测 × 资源建模 × 供给策略 × 持续校准

容量规划覆盖的资源维度包括:

  • 计算资源:CPU 核数、vCPU、容器 Pod 数、函数并发数
  • 内存资源:物理内存、堆内存、缓存容量(Redis/Memcached)
  • 存储资源:磁盘 IOPS、吞吐量、容量(块/文件/对象存储)
  • 网络资源:带宽、连接数、QPS、延迟
  • 外部依赖:数据库连接池、第三方 API 配额、消息队列积压

1.2 容量规划的目标

容量规划的最终目标是在成本与性能之间找到最优平衡点,具体可拆解为以下四个子目标:

目标维度 说明 关键指标示例
保障可用性 确保系统在任何负载下不因资源耗尽而中断服务 CPU 利用率 ≤ 70%,内存使用率 ≤ 80%
满足性能 在预期负载下,响应时间、吞吐量满足 SLO P99 延迟 ≤ 200ms,QPS ≥ 10000
优化成本 避免过度配置导致的资源浪费,实现弹性伸缩 资源利用率 ≥ 40%,闲置资源占比 ≤ 10%
支撑增长 提前识别容量瓶颈,为业务增长预留缓冲 提前 3-6 个月扩容,预留 30% 余量
实践要点:容量规划不是"越大越好",而是"刚刚好"。过度配置会导致云成本失控,配置不足则引发故障。通常建议将目标利用率设定在 60%-75% 之间,既保留缓冲又避免浪费。

1.3 核心原则

容量规划遵循以下六项核心原则,这些原则直接指导后续的压测脚本设计与容量模型构建:

  1. 以业务驱动:容量规划必须从业务指标(如日活、订单量、并发用户数)出发,而非单纯关注基础设施指标。
  2. 数据驱动决策:所有容量决策必须基于历史监控数据、压测数据和趋势分析,避免"拍脑袋"估算。
  3. 预留安全缓冲:任何容量规划都必须包含一定的冗余(通常为 20%-30%),以应对突发流量和故障转移。
  4. 持续迭代:容量规划不是一次性的"大爆炸"活动,而是随着业务变化、架构演进持续调整的过程。
  5. 分层建模:从用户层 → 应用层 → 中间件层 → 基础设施层,逐层建立容量模型,避免单点视角。
  6. 自动化验证:容量规划的结果必须通过定期压测巡检脚本进行验证,形成"规划-验证-调整"闭环。

1.4 为什么需要容量规划

在缺乏容量规划的情况下,系统运维往往陷入"救火模式":

无容量规划的典型后果:
• 大促/秒杀活动时系统雪崩,造成直接经济损失
• 盲目扩容导致云成本飙升,资源利用率低于 20%
• 无法准确回答"当前系统能支撑多少用户"
• 每次架构变更后都需要重新摸索容量边界

容量规划带来的核心价值体现在以下三个层面:

利益相关方 价值体现 具体收益
业务方 可预测的服务能力 提前知道系统能支撑多少用户、何时需要扩容
运维/SRE 从被动救火到主动规划 减少 P0 故障,降低夜间被叫醒频率
财务/管理层 成本可预测、可优化 云支出从"黑盒"变为"可解释、可控制"

1.5 容量规划与压测巡检的关系

在本课程中,容量规划不是孤立的理论,而是与压测巡检脚本深度整合的实践体系。下图展示了二者的协同关系:

容量规划与压测巡检整合关系图 容量规划流程 ① 业务需求预测 ② 资源建模与计算 ③ 供给策略制定 ④ 扩容/缩容执行 ⑤ 效果评估与调整 压测巡检脚本 ① 基线压测脚本 ② 容量阈值验证 ③ 瓶颈定位脚本 ④ 回归压测脚本 ⑤ 报告与告警 提供容量模型 与预期阈值 反馈实际容量 与瓶颈数据 持续闭环迭代 容量规划提供"预期",压测巡检脚本提供"验证",二者形成持续优化闭环
课程核心观点:容量规划不是纸上谈兵,必须通过压测巡检脚本进行持续验证。本课程后续章节将逐一实现上图中的每一个脚本模块,并与容量模型深度绑定。

1.6 容量规划的成熟度模型

不同组织的容量规划实践成熟度差异很大,以下模型可帮助团队定位当前阶段并制定改进路径:

成熟度等级 特征描述 典型表现 本课程目标
L0:救火式 无规划,出问题才扩容 频繁 P0 故障,扩容靠人工判断 —
L1:被动式 有监控告警,但无预测 CPU > 80% 告警后手动扩容 —
L2:主动式 基于历史数据做趋势预测 每周容量报告,提前 1 周规划 ✅ 本章基础
L3:自动化 压测脚本自动验证容量模型 巡检脚本定期执行,自动生成扩容建议 ✅ 课程核心
L4:智能化 AI 驱动动态容量优化 自动弹性伸缩,容量自愈 进阶方向

本课程的目标是帮助团队从 L0-L1 提升至 L3 自动化容量规划,通过压测巡检脚本实现容量模型的持续验证与自动调整。