基础的用户服务需要进行线上压测,但是这个项目的接口数400+,目前没有流量录制的功能,完成400+个接口的脚本编写和数据准备工作量是巨大的
需要从400+接口中挑选部分接口150+进行性能压测,那如何选择哪些接口进行压测呢?
如果根据线上请求量top150个接口,但是有些接口比如参数是list格式,虽然是少量的请求,但是依然可能会对服务器造成很大的压力甚至是雪崩
根据性能测试的经验,梳理了一些规则如下:
- 请求tps中top50的接口
需要重点关注请求量高的接口
- 涉及写操作的接口
写操作比较容易引起行锁等问题
写操作会触发setReids等操作
- 入参是集合的接口
确认线上用户传list的size多大,影响范围
-
可能产生大key或hot key的接口
-
实现逻辑复杂的接口
比如for循环等消耗cpu的操作
- 频繁操作数据库或者redis的接口
确定读以及写数据库次数
确定读以及写redis操作次数
-
线上监控mysql慢查询对应的接口
-
线上响应慢的接口