1.2.1 基线容量测试
全链路压测需要在生产环境中实施,才能避免环境差异造成的压测结果失真。但在生产环境中进行压测也会带来额外风险,因此,在实施全链路压测时,我们需要对系统进行数据隔离,并辅以各种技术改造工作和监控工作。在不具备这些能力之前,有一种方法可以让我们在测试环境中以较低的成本先“定性”地识别出系统可能存在的容量隐患,这种方法称为基线容量测试。
基线容量测试的具体做法是,按照与生产环境相同的部署方式搭建一套测试环境(以下简称基线环境),其中涵盖必需的中间件和网络设施,资源规模可以按生产环境的规模等比例减少。之后,将各服务的主干版本部署到基线环境上,通过压测的方式获取系统的容量指标并记录备案,这些指标称为“基线指标”。
首先,我们假定基线指标是符合系统的容量要求的,当系统服务准备发布新版本时,我们就可以在基线环境上部署这个新版本,以相同的标准进行压测。然后,将结果指标与基线指标进行对比,如果某些关键指标出现大幅异动,如响应时间大幅增加、CPU利用率大幅增加等,就需要技术人员介入以排查系统的风险。
基线容量测试可以在一定程度上提前发现系统潜在的容量隐患,但是由于基线环境与生产环境不完全对等,因此,我们既无法对服务容量进行定量评估,也无法为限流设置、超时设置等容量治理工作提供参考。