温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用arthas+jprofiler做复杂链路分析

发布时间:2021-12-29 13:36:24 来源:亿速云 阅读:277 作者:柒染 栏目:云计算

如何使用arthas+jprofiler做复杂链路分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

背景

Arthas 是阿里巴巴开源的应用诊断利器,提供了 profiler 命令,可以生成热点火焰图。通过采样录制调用链路来做性能分析,极大提升了线上排查性能问题的效率。

但是有一个问题,当 async-profiler 全量采样导出的 svg 文件太大时,想要找到关键的调用点,就非常困难。

比如下图:

如何使用arthas+jprofiler做复杂链路分析

没有办法做聚合或过滤,这方面本地的 profiler 工具比如 jprofiler、yourkits 就方便很多,有没有办法将两者结合起来呢?

经过分析发现,async-profiler 支持 jfr (Java Flight Recorder) 格式输出,jprofiler 也支持打开 jfr 快照,成了!具体操作步骤如下:

1. arthas 采样生成 jfr 文件

启动 arthas 之后,执行以下采样命令:

profiler start -f /home/admin/yourAppName/target/arthas-output/%t.jfr -d 180

%t 表示当前时间,-d 后面是采样秒数。

2. 下载 jfr 到本地

可以用 oss 倒腾,或者 szrz 等其他途径倒腾到本地。

3. jprofiler 分析

在做性能分析时我们常常想要找出:是谁在调用我,是谁调用我最多。下面举例介绍怎么做的。

3.1 打开快照

使用 jprofiler 打开 jfr 文件,选择 Open a snapshot, 打开之后选择 CPU views。


3.2 反向分析

View -> Find 查找要分析的类和方法,然后选择 Analyze -> Calculate Backtraces to Selected Method:

如何使用arthas+jprofiler做复杂链路分析

3.3 分析结果

修改 Summation mode 为 Total times,即可看到这个方法被哪些上游调用到,调用量和占比。

看完上述内容,你们掌握如何使用arthas+jprofiler做复杂链路分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI