Arthas-线上问题定位以及优化

背景

公司项目临近上线,测试中发现PAD查询数据性能很差,最长的需要50s才能展示数据。

分析问题

1、前端PAD只处理5条数据,不存在因数据量大导致的加载问题;

2、Mysql服务器中,本次查询作业单数据范围只有1000条左右,也不存在数据量大的问题;

3、排除了PADMysql数据库的问题后,问题焦点应该集中在MES系统接口中;

定位问题

翻出代码查看,发现接口中做的事情很多,无法准确的定位到是哪条代码的问题。因此采用arthas的trace功能定位问题。

Arthas官方文档

 安装和启动

curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

 

 

选择监控的Java程序,输入数字按回车

 

开启监控接口

 

PAD调用接口,Arthas监控接口执行情况

优化思路

1、 当前问题的根源在于查询数据库次数过多,且基本上查询的数据是一样的;
2、 对于重复数据,我们需要使用缓存;
3、 缓存分两种:
缓存中间件,例如 redis memcache
局部变量缓存,例如 map 对象;
 

代码优化

最终定位到问题根源后,将多次频繁查询且数据一样的对象放入缓存中,优化后接口请求时间控制在2s内; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值