服务端压测系列:

压测步骤

一般来说,一次完整的线上压测包括以下7个步骤

1.梳理高峰业务场景

可以按照一些问题描述模板比如5W2H来梳理业务场景,例如:

场景1:2018年11月11日00:00~01:00,共计xx万个用户同时操作xx。

场景2:每天xx时间段,xx系统会轮询调用xx服务xxxx次。

2.明确压测目标

压测目标制定可以

2.1、根据业务场景评估

2.2、根据历史流量峰值评估

TIPS:制定目标时需要留一些Buffer

3.准备压测数据&链路改造

准备压测数据一般有几种方式,根据具体场景可以:

1、直接DB建数据

2、通过业务接口建数据

3、线上流量COPY

链路改造最主要有:

1、接口免登(http接口压测会用到)

2、写接口对压测流量可重复执行

4.接口单元测试

接口单元测试需要验证压测链路是否通,如果有影子/隔离环境,看流量是否打到正确的环境中去。

5.小流量试压

实际压测时希望能尽快加压到目标QPS,小流量试压可以提前发现一些阻塞性问题风险并解决掉

比如我在线上环境试压一个业务接口的时候,当QPS达到30的时候,发现对外部接口调用的QPS已经达到了2500+,如果不经过试压直接大流量压测,很有可能会拖挂依赖的服务。

6.压测

压测前通知到相关运营、业务、开发、测试同学

压测中:

1.逐步加压到目标QPS。

2.在加压过程中,观测并记录发现的问题,如果出现阻塞性问题,停止压测。

观测指标

系统指标:CPU使用率、内存使用率、Load

服务指标:QPS、RT

JVM:GC的次数和耗时

压测后发出压测报告,压测报告对于目标和结论尽量一句话表述出来

7.优化

跟开发同学已经评估压测发现问题和优化方案,准备下一轮压测吧

TIPS:线上环境的服务端压测最好在业务低峰时间段、压测隔离环境中进行