服务端压测系列:
压测步骤
一般来说,一次完整的线上压测包括以下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:线上环境的服务端压测最好在业务低峰时间段、压测隔离环境中进行