一次性能问题定位

项目场景:

对系统进行一次新增接口的性能测试

测试接口:新增接口

测试场景:登录-循环控制器(新增接口-100次)

线程数:10


问题描述:

测试过程中发现,新增请求响应时间为300ms左右,相对不高;tps达到30以上,相对可观

后台监控发现数据库使用率达到100%,并且负载超高;

由此产生产生了疑问,明明请求响应时间比较短,整个接口业务链路也不涉及到响应时间长的请求,数据库CPU使用率和负载都不正常,CPU主要消耗在us,为正常应用程序消耗

原因分析:

经监控工具接口响应时间进行排序,查询发现,有一个请求响应时间超过3-5s,而且压测时产生的数量较新增接口相差无几;通过查看详情拿到详细的sql语句

拿到sql语句后,经与开发讨论确定与这条语句相关的业务,为新增后,会保存对应业务类型的统计数据,在保存统计数据的时候需要进行查询;此请求为后台服务自动产生的一个异步请求,响应时间不包含在新增请求内;此sql语句在where后面的查询条件字段,并没有添加索引;

解决方案:

优化方案:由于is_delete为状态字段,包含两个状态0和1,并不适合建立索引,因此在issue_id上建立索引,索引建立之后,对接口业务进行回归;

回归发现,数据库服务器资源使用情况变得正常,从100%到小于5%;该请求响应时间从4秒左右到小于10ms;效果明显

总结:

总结:压测接口响应时间短,不代表业务没有问题,当前系统架构较复杂,后台服务之间的交互不完全暴露在前端,因此测试的时候,需要对整个业务链路进行全链路监控;方便定位到具体问题;

全链路监控工具推荐:Skywalking8+elasticsearch7

链接地址:https://blog.csdn.net/chen6722/article/details/115328744?spm=1001.2014.3001.5501

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值