性能压测,是保障服务可用性和稳定性过程中,不可或缺的一环。我们将从性能压测的设计、实现、执行、监控、问题定位和分析、应用场景等多个纬度对性能压测的全过程进行拆解,以帮助大家构建完整的性能压测的理论体系,并提供有例可依的实战。
01 性能环境要考虑的要素
系统逻辑架构,即组成系统的组件、应用之间的结构、交互关系的抽象。最简单最基本的就是这三层架构。
三层逻辑结构图
- 客户层:用户请求端。
-
- Web层:处理客户端所有的业务请求逻辑和服务端数据。
-
- 数据库层:维护业务系统的数据。
-
- 更复杂的逻辑结构
- 逻辑架构中的任意一层,有可能是在独立的物理集群机器上,也有可能跨多个物理机器或者跟其他逻辑层共享同一个物理集群。
-
- 逻辑架构间的箭头是数据流,不是物理网络连接。
物理架构图
- 软件:环境中涉及到哪些基础软件、中间件。
-
- 硬件:实体机/虚拟机,单机配置(CPU、内存、硬盘大小),集群规模。
-
- 网络:内网还是外网,网络带宽,是否有跨网段问题,是否隔离。
软件中对系统使用到的中间件有一个了解,不仅可以帮助设计更仿真的压测环境,也有助于在压测过程中,加快瓶颈、问题的定位和解决。
- 网络:内网还是外网,网络带宽,是否有跨网段问题,是否隔离。
02 不同性能压测环境的优缺点对比
我们通过表格的形式以下 4 个压测环境方案在使用场景、优缺点、成本、阿里云及其客户的应用情况做了对比。
从表格中,我们可以看待,不管是哪种压测环境方案,在落地成本,满足需求程度上都是有所区别的,接下来,我们结合在阿里/阿里云客户的应用情况,对这 4 种压测环境进行介绍。
方案价值
既然是低配环境,压出来的数据似乎完全不能用作生产环境运行的参考,但实际上,这种环境下的压测,也是非常重要的一环。主要体现在项目研发阶段的价值上。
-
新应用上线前,应用代码本身的瓶颈发现。代码本身的性能问题,例如连接未释放,线程数过多,通过低配的环境,一定时长的压测完全可以提前发现很多。
-
- 应用维度基线数据。