本地环境使用Arthas排查Java程序接口性能问题(Windows)
环境(本地):
- Windows 11
- Arthas 3.7.1
一、下载Arthas
下载链接:https://github.com/alibaba/arthas/releases,选择一个版本,本文使用的是3.7.1版本
二、启动应用程序和Arthas
启动Java程序,打开终端,查看Java进程id
jps
进入到Arthas的安装目录,打开终端,启动Arthas
as.bat Java进程id
三、使用Trace命令进行耗时排查
找到要诊断的方法
输入命令进行耗时监听
trace com.xxx.service.impl.SystemUserServiceImpl page -n 5 --skipJDKMethod false
调用接口观察
可以发现耗时最长的方法是SystemUserDAO类里的pageByUsernameLikeIfPresentWithQueryParam方法,我们看看代码
是查询SQL耗时问题,可以考虑加索引来优化
四、插件介绍
Arthas命令太多太复杂,每次用的时候去找会比较麻烦,这里推荐一个插件,可以帮助我们快速生成命令,下面还是以Trace命令为例
插件 arthas idea
使用的话也很简单,直接在方法名上右键,选择Arthas Command,选择我们需要的Trace命令
然后去终端上直接粘贴就可以用了
参考链接:
- https://arthas.aliyun.com/doc/trace.html