作者 | 羽涅 阿里巴巴 CCO 手艺部手艺专家,负担 CCO 手艺部架构治理、基础手艺能力建设方面事情,热衷开源手艺,喜欢折腾电子产品。

【Arthas 官方社区正在举行征文活动,加入即有奖品拿~点击投稿】

靠山

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

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

好比下图:

没有设施做聚合或过滤,这方面内陆的 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 后面是采样秒数,更多参数参见:https://alibaba.github.io/arthas/profiler.htmlhttps://github.com/jvm-profiling-tools/async-profiler/blob/v1.6/src/arguments.cpp

2. 下载 jfr 到内陆

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

3. jprofiler 剖析

在做性能剖析时我们经常想要找出:是谁在挪用我,是谁挪用我最多。下面举例先容怎么做的。

3.1 打开快照

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

,

联博开奖

www.326681.com采用以太坊区块链高度哈希值作为统计数据,联博以太坊统计数据开源、公平、无任何作弊可能性。联博统计免费提供API接口,支持多语言接入。

,

3.2 反向剖析

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

3.3 剖析效果

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

总结

  1. 通过 Arthas profiler 下令天生 jfr 文件;
  2. 在内陆通过jprofiler来剖析jfr文件,定位谁在挪用我;
  3. 运用之妙,存乎一心。工具的相互连系,可以发生巧妙的化学反应。

Arthas 征文活动火热举行中

Arthas 官方正在举行征文活动,若是你有:

  • 使用 Arthas 排查过的问题
  • 对 Arthas 举行源码解读
  • 对 Arthas 提出建议
  • 不限,其它与 Arthas 有关的内容

    迎接加入征文活动,另有奖品拿哦~点击投稿

“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等手艺领域、聚焦云原生盛行手艺趋势、云原生大规模的落地实践,做最懂云原生开发者的民众号。”