是谁在调用我?使用 arthas+jprofiler 做复杂链路分析

本文介绍了如何结合阿里云的Arthas和jprofiler工具进行性能分析,特别是当Arthas的svg文件过大时,如何利用jprofiler的jfr支持找到关键调用点。通过arthas的profiler命令生成jfr文件,然后在本地使用jprofiler打开分析,实现反向调用链路追踪,从而高效定位性能问题。
摘要由CSDN通过智能技术生成

背景

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

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

比如下图:

1.png

没有办法做聚合或过滤,这方面本地的 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值