2. 容量规划基础概念

在利用 Prometheus 数据辅助网关升级之前,必须建立统一的容量规划语言。本节定义四个核心概念:容量规划、基线、容量与性能的区别以及关键术语。这些概念是后续所有基线对比和决策推导的基石。

2.1 什么是容量规划

容量规划(Capacity Planning)是预测未来资源需求并提前配置资源的过程,目标是确保系统在可接受的性能水平下处理预期负载,同时避免过度配置导致的成本浪费。

核心公式: 容量规划 = 需求预测 × 性能模型 × 成本约束

在网关升级场景中,容量规划回答三个问题:

  • 当前网关能否承载未来 6-12 个月的流量峰值?
  • 新网关需要多少 CPU、内存、网络带宽?
  • 升级窗口内如何保证不触发容量过载?
容量规划生命周期 容量规划生命周期 ① 数据采集 Prom 指标 / 日志 ② 基线建立 P50/P95/P99 统计 ③ 预测建模 线性 / 季节性模型 ④ 方案决策 升级 / 扩容 / 限流 反馈闭环:持续校准基线 💡 关键点: 容量规划不是一次性活动。每次升级后,新网关的指标会反馈回数据采集阶段,形成持续优化的闭环。

2.2 基线(Baseline)的定义

基线是系统在正常稳态运行下各项资源指标的统计参考值。它不是单一数值,而是一个包含时间窗口、百分位和上下文标签的多维向量。

基线 vs 阈值: 基线描述“正常是什么样”,阈值定义“什么算异常”。基线是动态的,阈值通常是静态的。

在 Prometheus 语境下,基线通常由以下元素构成:

基线元素 PromQL 示例 说明
CPU 使用率 P50 quantile(0.5, rate(node_cpu_seconds_total[5m])) 典型负载下的 CPU 消耗
内存占用 P95 quantile(0.95, process_resident_memory_bytes) 内存压力峰值参考
请求延迟 P99 histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[1m])) 长尾延迟容忍上限
吞吐量日均值 avg(rate(http_requests_total[24h])) 日间业务量基准

2.3 容量与性能的区别

容量和性能经常被混用,但在容量规划中必须严格区分:

维度 容量(Capacity) 性能(Performance)
定义 系统能处理的最大负载量 系统处理负载时的响应速度
单位 QPS、并发连接数、吞吐量 延迟(ms)、P99、TP99
关注点 能扛多少 有多快
瓶颈表现 请求被拒绝、连接超时 响应变慢、队列堆积
规划目标 预留足够资源应对峰值 优化代码和架构降低延迟
Prometheus 指标 rate(http_requests_total[5m]) histogram_quantile(0.99, ...)
常见误区: 升级网关时只关注性能提升(延迟降低),却忽略了容量是否匹配。新网关可能延迟更低,但若 CPU 容量基线未对齐,高并发下仍会 OOM 或丢请求。
容量 vs 性能 对比 容量 vs 性能:两个不同的规划维度 容量(Capacity) • 最大 QPS:10,000 • 并发连接上限:5,000 • 内存上限:8 GB • 网络带宽:1 Gbps → 超过此值则拒绝服务 性能(Performance) • 平均延迟:50 ms • P99 延迟:200 ms • 吞吐量:8,000 req/s • 错误率:0.01% → 延迟增加则体验下降 相互影响

2.4 关键术语解释

以下术语在后续章节中高频出现,提前统一理解:

术语 英文 定义 在网关升级中的意义
QPS Queries Per Second 每秒请求数 网关吞吐量的核心指标
P50 / P95 / P99 Percentile 第 50/95/99 百分位延迟 评估升级对长尾延迟的影响
RPS Requests Per Second 与 QPS 同义,每秒请求数 容量规划中的负载单位
饱和度 Saturation 资源已使用量 / 总容量 判断网关是否接近瓶颈
Headroom Headroom / Buffer 当前负载到容量上限的余量 决定升级窗口的安全边界
资源争用 Resource Contention 多个进程竞争同一资源 新网关可能引入新的争用点
线性扩展比 Linear Scalability 资源增加与吞吐量提升的比例 评估水平扩容的有效性
记忆口诀: “容量看上限,性能看速度,基线看常态,饱和度看余量。”

2.5 为什么这些概念对网关升级至关重要

网关升级不是简单的“换新版本”,而是一次容量与性能的再平衡。没有基线,你无法判断新网关是变好还是变差;没有容量规划,你无法确定新网关能否扛住明天的流量洪峰。

  • 基线缺失 → 升级后出现性能回退,无法快速定位是配置问题还是容量不足。
  • 容量与性能混淆 → 只优化了延迟,却忽略了 CPU 上限,导致高并发下 OOM。
  • 术语不统一 → 开发、运维、业务方对“容量”的理解不同,决策效率低下。