扩展性测试

扩展性测试验证加资源后的性能画像:水平扩实例、垂直扩规格、读扩展(副本与缓存);记录资源翻倍时吞吐与延迟的变化,评估线性程度与新瓶颈出现的位置。

软件测试速查开发更新于 2026-10-13

扩展性测试是什么

扩展性测试验证「加资源后性能如何变化」:水平扩展增加实例数、垂直扩展提高单机规格、读扩展增加副本与缓存。核心记录是资源翻倍时吞吐与延迟的变化曲线——近似线性说明扩展有效,提前走平则说明出现了新的共享瓶颈,例如数据库、连接池、缓存或网络。

基本信息

扩展方式水平(加实例)、垂直(加规格)、读扩展(副本与缓存)
记录内容资源量、吞吐、延迟、资源利用率
线性判断吞吐随资源近似倍增、延迟保持稳定
拐点定位共享依赖何时成为新瓶颈
结论条件结论附数据量、依赖配置与资源规格
干扰排除扩容时同步观察共享依赖与新瓶颈位置

逐级扩容示例

逐级扩容示例
1 实例 -> 2 实例 -> 4 实例,逐级保持相同负载模型
观察:吞吐是否近似倍增、延迟是否稳定
记录:数据库负载、连接池占用、缓存命中率变化
结论:线性段有限,写清拐点位置与瓶颈资源

典型使用场景

  • 容量规划:预估增加实例后的承载能力与成本。
  • 架构验证:验证无状态化设计是否名副其实。
  • 瓶颈定位:通过逐级扩容找到第一个走平的资源。
  • 成本评估:对比水平与垂直扩展的性价比。
  • 发布前评审:大促或活动前的扩容方案需要数据支撑。
  • 回退方案设计:明确扩展失效时降级的优先顺序。

扩展方式与新瓶颈

扩展方式观察点常见新瓶颈
水平扩展实例数与吞吐的线性度数据库连接数与写入竞争
垂直扩展规格提升后的尾延迟改善单机 GC 与线程调度
读扩展副本延迟与一致性主从复制延迟、缓存一致性
缓存引入命中率与源站压力缓存击穿与数据过期策略
扩展性结论要带条件:同样的实例数在不同数据量与依赖配置下表现可能不同,脱离条件比倍数意义有限。
先排除干扰因素:扩容时若数据库、缓存同步扩容,瓶颈转移会被掩盖,逐级扩容每次只动一个变量。
关注尾延迟:吞吐线性增长但 p99 恶化,说明个别实例或共享资源已经不稳。

易错点

  • 扩容后未同步扩容数据库与连接池,瓶颈转移被忽略:每级扩容同步记录共享依赖指标。
  • 结论只给吞吐倍数,不带延迟与资源条件:补充数据量、规格与延迟变化才能服众。
  • 用估算代替实测:理论线性度与真实表现差距大,至少逐级实测两级。
  • 忽略降载与回收:缩容、缓存失效后的表现常与扩容不对称,提前验证。

数据来源与参考

  • Google SRE Workbook(容量与扩展章节)
  • AWS Well-Architected 框架:性能效率支柱
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌