1、windows 如何安装 arthas

进入 https://github.com/alibaba/arthas/releases,点击 arthas-bin.zip 进行下载。
解压下载完成后的 arthas-bin.zip 如下,看到 arthas-boot.jar 代表成功。
解压后的arthas

2、在排查问题之前,先启动 arthas

打开 cmd 或者 powershell,目录定位到解压后的 arthas-bin 下,使用
java -jar arthas-boot.jar 启动arthas。如下:
启动arthas
启动成功后,arthas 将会列出你电脑中 Java 相关的进程。选择对应进程之前的序号,输入后并点击回车。我这里是需要排查本地启动的服务 16504 com.songshuai.manage.ManageApplication 可以看到,序号是 3,输入3按下回车,arthas 将对该服务进行监控。
监控指定的Java进程
此时可以在浏览器中输入 localhost:3658 进入 arthas 控制台,方便输入相关指令进行排查。
Arthas web console

3、排查某个慢接口&方法

页面慢接口1.29s
抓出接口 /api/manage/purchase/order/queryAgentPurchase,定位到后端代码
方法定位
然后在 arthas 中输入 trace com.songshuai.manage.controller.purchaseorder.PurchaseOrderController queryAgentPurchase
并按下回车,代表 arthas 将对该方法开启追溯开关,后续该方法运行完成时,arthas 将会输出追溯的结果。
arthas追溯结果
接着排查 trace com.songshuai.manage.service.sellstore.AgentPurchaseService queryAgentPurchase
arthas追溯结果
可以看到,queryUserMapByIds 花了 200ms,继续排查 trace com.songshuai.manage.service.permission.PermissionService queryUserMapByIds
arthas追溯结果
继续排查 trace com.songshuai.manage.service.permission.PermissionServiceImpl queryUserInfoByIds
arthas追溯结果
最终是调用第三方服务,通过用户id集合获取用户信息,由于是订单列表中有创建人、修改人、付款人、确认人等多列用户id数据,这块查询时拖慢了整个接口。

4、更多功能参考官网文档

arthas 官方文档:https://arthas.aliyun.com/

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐