使用Arthas调优

定位慢操作

  1. 针对查询问题可以考虑的方法有是去服务器上开启mysql的慢查询日志,与使用arthas定位.
  2. 为了与运维工作解耦开,这边仅介绍使用arthas.安装运行点击可以参考
  3. 运行起服务,运行起arthas,在arthas的shell交互界面中选择你的服务进入.
  4. 输入命令trace你运行慢的函数,可以使用ognl表达式或其他,也可以直接通配符.
    例如我要排查FanLibrary这个类下面的getHttpResponse方法。
trace com.fun.frame.httpclient.FanLibrary getHttpResponse

然后再去调用原服务的这个方法。这时候arthas会输出各层次的代码耗时,一目了然的找到其中耗时比较大的方法操作.

tips: 如果打类名和生成比较慢,可以考虑使用idea的arthas插件。应该在插件市场搜索安装即可。

定位位置后定位原因

sql查询慢

  1. 如果是sql问题引起的,考虑将mybatis-batis的sql打印开启,将运行的sql复制到自己用的sql工具里分析。
  2. 在你的sql之前输入explain再执行。如
explain select * from a

然后就会展示出它的执行计划,具体每一列的含义可以具体搜索学习。

  1. 找到其中慢的部分。进行优化。

具体优化原则很多,具体问题具体查询即可,普遍无非就是加索引。针对普通列考虑加索引,如果加了索引没用,再次使用explain排查没走索引的原因.如果是json列可以考虑构建虚拟列等方法。总而言之就是具体问题具体分析,方法很多,结果导向。

非sql查询问题

  1. 一般就是vm或者网络或文件的io问题。
  2. 前者比较简单。没什么好讲的,结果导向,具体可以看<<JVM调优>>这本书,后者的话遇到情况比较多,考虑如优化业务、文件io、换netty之类的。

解决问题

针对排查出的原因,使用具体的方法解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值