1.2.2 集群缩放压测

要更真实地评估系统服务的容量情况,我们还是要在生产环境上做压测。集群缩放压测是一种在生产环境中进行系统服务容量评估的早期实践,它的做法是逐步缩减集群内的服务器数量或实例数量,使得单台服务器或单个实例所承载的流量不断增加,从而评估出集群可承载的最大流量,并以此推算出单位流量增长所需扩容的服务器数量或实例数量。

集群缩放压测的优势是很明显的,它基于系统的线上真实流量,我们不需要编写任何压测脚本,也不需要准备任何压测数据,压测过程中也不会产生脏数据。但它的劣势同样明显,首先,系统线上操作的风险比较高,一旦集群规模被缩减至瓶颈点,容易引发系统的线上事故;其次,由于集群缩放压测基于系统的线上真实流量,因此对流量规模有一定要求,如果流量太小,当集群缩减到单服务器或单实例后依然没有达到容量瓶颈点,就无法推测容量情况。

集群缩放压测还存在一个“致命伤”,即无法对底层基础设施(如数据库、消息队列等中间件)的容量进行评估。虽然我们缩减了应用服务的集群规模,但这些基础设施的资源规模是不变的,在外部请求量恒定的情况下,依然无法评估它们的容量情况。