📌 容量规划
1. 定义与目的
容量规划(Capacity Planning)是指根据业务增长预测、历史运行数据和系统架构特性, 科学评估系统在未来一段时间内所需的计算、存储和网络资源,并制定相应扩容策略的过程。 在银行业,容量规划是保障核心业务连续性的基础性工作,直接关系到系统能否平稳支撑业务高峰。
容量规划的核心目的包括:
- 风险前置管控:提前识别资源瓶颈,避免因容量不足导致的业务中断
- 成本优化:避免过度采购导致资源闲置,在性能与成本之间取得平衡
- 扩容决策支撑:为IT预算编制和扩容时间窗口提供数据依据
- 架构演进指导:发现单点容量天花板,推动架构向分布式/弹性方向演进
2. 容量评估方法
银行业普遍采用三种容量评估方法,通常结合使用以确保评估结果的全面性和准确性。
2.1 趋势分析法
基于历史监控数据(CPU、内存、TPS、并发数等),通过时间序列分析预测资源消耗趋势。 适用于稳态运行系统,业务增长模式相对稳定的场景。
趋势分析实施步骤
- 数据采集:收集至少6-12个月的历史性能数据(TPS峰值、CPU使用率、内存、连接数等)
- 数据清洗:剔除异常点(如故障时段、变更窗口),确保数据质量
- 趋势拟合:采用线性回归、指数平滑或ARIMA模型进行趋势拟合
- 拐点预测:基于资源安全水位(如CPU ≤ 60%)计算到达扩容阈值的时间点
- 安全系数叠加:在预测值基础上增加1.2-1.5倍安全系数(银行通常取1.3-1.5)
2.2 模型推演法
通过建立系统的容量数学模型,根据业务量和单交易资源消耗计算所需资源总量。 适用于新建系统或发生重大架构变更的场景。
模型推演核心公式
所需CPU核数 = (峰值TPS × 单交易CPU耗时) / CPU目标利用率
所需内存 = 基础内存 + (峰值并发 × 单会话内存)
所需带宽 = 峰值TPS × 单交易平均报文大小 × 8 / 带宽目标利用率
2.3 压测验证法
通过全链路压力测试实际验证系统的容量上限,是容量评估中最可靠的方法。 适用于关键核心系统上线或重大业务活动(如双十一、年终决算)前的容量确认。
压测验证实施要点
- 环境对等:压测环境配置应与生产环境一致或按比例缩放(通常1:1或1:N)
- 梯度加压:按20%-40%-60%-80%-100%梯度逐步增加负载,记录每个阶梯的系统表现
- 拐点识别:找到TPS不再随并发增长而上升的饱和点(系统容量上限)
- 极限测试:在容量上限基础上继续加压直至系统崩溃,确定极限容量
- 安全容量:取极限容量的60%-70%作为生产环境安全运行容量
3. 银行典型系统容量模型
下表给出了银行业几类典型系统的容量模型参考值,数据来源于行业实践与公开基准。 实际值因架构、代码质量、网络环境而异,仅供参考。
| 系统类型 | 典型TPS范围 | CPU配置建议 | 内存配置建议 | 数据库建议 | 网络带宽 |
|---|---|---|---|---|---|
| 核心账务系统 | 3000-8000 TPS | 32C × 4节点(应用层) | 64GB × 4节点 | Oracle RAC 4节点 | 10 Gbps |
| 支付清算系统 | 5000-15000 TPS | 32C × 6-8节点 | 128GB × 6-8节点 | 分布式数据库 | 10-25 Gbps |
| 个人网银/手机银行 | 10000-50000 TPS | 16C × 20-50节点(弹性) | 32GB × 20-50节点 | 读写分离 + Redis | 25-100 Gbps |
| 信贷审批系统 | 500-2000 TPS | 16C × 4节点 | 32GB × 4节点 | MySQL主从 | 1 Gbps |
| 风控决策引擎 | 10000-30000 TPS | 16C × 10节点 | 64GB × 10节点 | 内存数据库/Redis | 10 Gbps |
| ESB/服务总线 | 5000-20000 TPS | 16C × 6节点 | 32GB × 6节点 | 无状态(MQ+缓存) | 25 Gbps |
4. 实战案例:年终决算容量规划
案例背景
某股份制银行年终决算期间,核心账务系统需要处理比平日高3-5倍的批量业务量(结息、计提、损益结转等)。 要求系统在年终决算窗口(12月31日18:00至次日6:00)内完成所有批量任务,且联机交易不受影响。
容量评估过程
- 趋势分析:基于前三年决算数据,发现批量业务量年均增长25%,推演当年批量量约为上年的1.25倍
- 模型推演:按最大批量TPS=8000计算,需至少4台32C应用服务器+4节点Oracle RAC
- 压测验证:模拟决算批量场景进行全链路压测,验证系统在峰值TPS 10000下可稳定运行12小时
- 应急预案:预留2台应用服务器作为备用,数据库开启自动扩容
容量规划结论
| 资源项 | 日常配置 | 决算配置 | 扩容方式 |
|---|---|---|---|
| 应用服务器 | 4台 × 32C/64G | 6台 × 32C/64G | 弹性扩容(提前2周) |
| 数据库节点 | 4节点 RAC | 6节点 RAC | 临时节点加入 |
| 存储IOPS | 50000 | 120000 | SSD缓存层开启 |
| 网络带宽 | 10 Gbps | 25 Gbps | 临时升配 |
- 建立容量基线库:记录每个系统在不同负载下的资源消耗基线,作为容量评估基准
- 实施容量监控预警:当资源使用率达到安全水位的80%时自动触发扩容评估流程
- 采用弹性架构:核心系统逐步向云原生/容器化迁移,实现自动弹性伸缩
- 定期容量复盘:每个季度对容量模型进行校准,对比预测值与实际值,持续优化模型精度
- 建立容量风险台账:识别并跟踪所有单点容量风险,明确消解计划与责任人