工作中用到的好用的接口耗时原因定位的工具Arthas,今天就写到博客中持久化下来吧。
官方文档(较全面):https://arthas.aliyun.com/doc/http-api.html#id6
适用场景:监控明显显示接口耗时较多,但是又无法直接定位接口里面哪些操作影响耗时
具体使用(文档已经很清楚了, 但是还想把耗时定位部分拿出来单独记录下):
1、登陆服务器 安装并启动Arthas
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
2、选择java进程进行分析
$ $ java -jar arthas-boot.jar
* [1]: 35542
[2]: 71560 arthas-demo.jar
3、使用trace命令方法定位路径上的每个节点上耗时,其中demo.MathGame为类的全路径,run为所要具体定位的类方法的名称
$ trace demo.MathGame run
Press Q or Ctrl+C to abort.
Affect(class-cnt:1 , method-cnt:1) cost in 28 ms.
`---ts=2019-12-04 00:45:08;thread_name=main;id=1;is_daemon=false;priority=5;TCCL=sun.misc.Launcher$AppClassLoader@3d4eac69
`---[0.617465ms] demo.MathGame:run()
`-