压测方法有哪几种
压测按目标分成几类:阶梯加压寻找吞吐拐点与瓶颈,恒定压力做长时间浸泡验证稳定性,突发流量验证弹性与自愈能力,全链路压测验证端到端容量。选哪种取决于要回答的问题,而不是压测工具的默认模式。
结论能不能迁移
压测结论能否用于容量决策,取决于环境与数据是否贴近生产。数据分布尤其关键:均匀随机的测试数据压不出倾斜场景下的热点问题,几个热键就足以让真实性能远低于压测结果。压测前确认数据分布、缓存状态与依赖服务的差异,并在结论里标注这些局限。
压测类型
| 类型 | 目标 | 观察点 |
|---|---|---|
| 阶梯加压 | 找吞吐拐点与瓶颈 | 延迟抬升点、错误率 |
| 浸泡 | 长时间稳定性 | 内存泄漏、连接泄漏 |
| 突发 | 弹性与自愈能力 | 扩容时延、恢复速度 |
| 全链路 | 端到端容量 | 上下游级联瓶颈 |
基本信息
| 环境 | 尽量与生产同规格,或明确记录规格差异 |
|---|---|
| 数据 | 分布要与生产一致,包含热点与长尾 |
| 观测 | 记录吞吐、延迟分位与错误率三条曲线 |
| 结论 | 标注假设与不确定项,避免直接当作容量承诺 |
典型使用场景
- 上线前容量验证:确认目标流量下是否留有安全余量
- 大促扩容评估:提前验证峰值流量方案
- 性能回归对比:版本升级前后做同比压测
- 故障注入演练:验证降级与熔断在高压下的表现
- 限流阈值标定:以实测拐点推导限流参数
一次完整压测的排期
准备阶段先明确要回答的问题与通过标准,准备贴近生产的数据与流量模型,并确认压测流量不会影响真实用户,通常需要给压测标识打标以便在监控与日志中区分。执行阶段按阶梯加压记录曲线,到达目标负载后维持一段时间观察是否稳定,再逐步回收并发观察恢复过程。收尾阶段整理结论、记录假设与未覆盖的场景,并在线上设置与结论对应的容量水位告警。
压测数据分布要与生产一致:均匀随机数据压出的结论对倾斜场景不成立,热点键会让实际延迟远高于压测结果。