峰值系数与冗余设计是什么
容量要按峰值而不是平均值来设计:峰值系数等于峰值流量除以平均流量,反映业务流量的波动幅度,不同业务差异很大。拿到系数之后还要叠加故障冗余——N+1 或跨可用区对等部署,保证单点或单区故障时剩余容量仍能承接全量流量。尖峰无法靠堆机器完全消化时,用排队、预约、预热与限流削平曲线,把瞬时压力转成可控的等待时间。
基本信息
| 峰值系数 | 峰值流量 / 平均流量,按业务历史数据取值 |
|---|---|
| 冗余模式 | N+1(多一份备用)或跨可用区对等容量 |
| 削峰手段 | 排队、预约、缓存预热、限流与降级 |
| 验证方式 | 按预期峰值乘以安全系数压测,观察拐点 |
| 单列计划 | 年度峰值(如大促、开学季)与日常峰值分开规划 |
典型使用场景
- 大促容量规划:按历史峰值与预估增长倍数推算实例数与数据库规格
- 跨可用区部署:单区故障时另一区独立承接全量流量
- 发布窗口:滚动发布期间容量下降,冗余要覆盖发布带来的实例缺口
- 定时任务集中触发:把批量任务错峰,避免与业务高峰叠加
- 突发流量防护:限流与排队保护后端,先保证已接入用户可用
- 成本平衡:用削峰手段降低为短时尖峰付出的长期资源成本
容量估算示例
容量估算示例
# 1 取数:按分钟粒度统计历史请求与并发,找到日常峰值与活动峰值
晚高峰 3.5k QPS、日均 1k QPS → 峰值系数 3.5
# 2 冗余:跨可用区对等部署,单区故障时另一区承接 3.5k QPS
# 3 反推实例数:单实例实测 500 QPS → 每区至少 7 台,加发布余量取 8 台
# 4 校验:按峰值的 1.2 倍压测,确认拐点位置与恢复时间
# 5 依赖核对:数据库连接数、缓存带宽、下游配额是否同步扩容冗余与削峰
| 手段 | 作用 | 代价 |
|---|---|---|
| N+1 冗余 | 单实例或单节点故障时承接流量 | 长期资源成本上升 |
| 跨区对等 | 可用区故障时另一区独立承接 | 跨区数据同步与一致性成本 |
| 排队与限流 | 保护后端,避免过载崩溃 | 部分请求被延迟或拒绝 |
| 预热 | 避免冷启动时的性能洼地 | 需要提前触发并验证 |
| 降级 | 过载时牺牲非核心功能 | 需要业务确认优先级 |
峰值系数要区分日峰值与年度峰值:用日常峰值推算大促容量通常严重低估,年度峰值应单列容量计划并提前演练。
冗余要覆盖全链路:应用实例加倍但数据库仍是单节点,故障时一样不可用;连接池、缓存带宽与下游配额同样要按峰值核算。