1. 容量压测概述
1.1 容量压测的定义
容量压测(Capacity Load Testing)是指在特定硬件、网络与软件配置下,通过模拟真实用户并发请求,逐步增加系统负载,以测量系统最大处理能力、资源瓶颈与性能拐点的测试方法。其核心目标是回答“系统在给定资源下能支撑多少用户/交易/吞吐量”。
关键定义公式: 容量压测 = 负载梯度 + 资源监控 + 拐点识别 + 容量基线
1.2 容量压测的目标
| 目标维度 | 具体描述 | 量化指标示例 |
|---|---|---|
| 最大吞吐量 | 系统在不违反SLA前提下能处理的最大TPS/QPS | TPS ≥ 5000,错误率 < 0.1% |
| 资源拐点 | CPU/内存/IO/网络达到饱和时的并发用户数 | CPU 80% 时并发用户数 = 1200 |
| 弹性边界 | 系统从正常到崩溃的负载阈值 | 最大并发用户数 = 2000 |
| 容量基线 | 每次压测后输出的标准化容量报告 | 基线版本 v2.3.1,TPS=4800 |
1.3 容量压测的价值
- 风险前置:在系统上线前发现容量不足、内存泄漏、连接池耗尽等隐患,避免生产故障。
- 资源规划:为扩缩容、成本优化提供数据支撑,避免过度或不足配置。
- SLA 保障:验证系统是否满足合同或内部承诺的性能指标。
- 变更验证:每次架构升级、代码重构、中间件替换后,通过容量压测确认性能未退化。
- 容量预测:基于历史压测数据建立容量模型,预测未来业务增长下的资源需求。
实践建议:容量压测应作为每次大版本发布的“门禁”环节,未通过容量基线校验的版本禁止上线。
1.4 容量压测在系统生命周期中的位置
容量压测不是孤立的活动,而是贯穿系统生命周期的关键质量门禁。下图展示了容量压测在典型软件生命周期中的嵌入位置:
1.5 容量压测的典型触发时机
| 生命周期阶段 | 触发事件 | 压测重点 |
|---|---|---|
| 功能测试完成后 | 版本提测 | 核心接口最大TPS、响应时间 |
| 预发布前 | 上线评审 | 全链路容量、数据库连接池 |
| 生产运行中 | 日常巡检 | 容量基线对比、资源水位 |
| 业务大促前 | 活动预案 | 峰值容量、弹性伸缩验证 |
| 架构变更后 | 中间件/数据库升级 | 性能回归、容量对比 |