容量规划离不开对业务场景的分析,分析出场景后,就要对这些场景进行模拟,也就是容量的压力测试,用来真实地验证系统容量和性能是否可以满足极端业务场景下的要求。同时,在这个过程中还要对容量不断进行扩缩容调整,以及系统的性能优化。
今天,我们就来看压力测试的技术实现方式:压力测试系统的建设。我们详细讲讲压力测试的几个维度。
第一个维度,压测粒度
压测粒度上,我们一般会遵照从小到大的规律来做。
1.单机单应用压力测试
优先摸清单个应用的访问模型是怎样的,再根据模型进行单机单应用压力测试。这时我们就可以拿到单个应用和单个应用集群的容量水位,这个值就是后续我们根据业务模型分析之后扩容的基础。
2.单链路压力测试
获取到单个应用集群的容量水位之后,就要开始对某些核心链路进行单独的压力测试,比如商品详情浏览链路、加购物车链路、订购下单链路等等。如下图的交易下单链路压测模型示例,连线上的数字是不同应用或接口调用的流量占比。
3.多链路 / 全链路压力测试
当单链路的压测都达标之后,我们就会组织多链路,或者全链路压测。多链路本质上就是多个单链路的组合,全链路就是多链路的组合。如下图就是多个交易场景的多链路组合。
第二个维度,压测接口及流量构造方式
接口一般分为 HTTP 接口和 RPC 接口,这一点应该不难理解,就不做过多讲解了。
流量构造方式上,根据压测粒度的不同,会采用不同的方式,我们常见的有以下几种方案。