arthas jprofiler做复杂链路的调用分析
作者:横云断岭 发布时间:2022-01-15 12:01:25
背景
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://arthas.aliyun.com/doc/profiler.html
https://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
3.2 反向分析
View -> Find 查找要分析的类和方法,然后选择 Analyze -> Calculate Backtraces to Selected Method
3.3 分析结果
修改Summation mode 为Total times,即可看到这个方法被哪些上游调用到,调用量和占比
总结
通过Arthas profiler命令生成
jfr
文件;在本地通过
jprofiler
来分析jfr
文件,定位谁在调用我;运用之妙,存乎一心。工具的互相结合,可以产生奇妙的化学反应。
来源:https://blog.csdn.net/hengyunabc/article/details/107948158


猜你喜欢
- 1、dose not point to a valid jvm installation出错问题按照以下方法设置一定可以不会出现这个错误。我
- Java HashSetHashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。HashSet 允许有 null 值。
- 由于jdk 1.8 之后sun.misc 包下的 BASE64Decode的依赖 被移除我们需要在自己的项目中引入EncodeUtils 工
- C#限速下载网络文件的方法,具体如下:using System;using System.Collections.Concurrent;us
- 经过一段时间的学习和项目实践,你会发现,打包->上传蒲公英->生成二维码是一个枯燥且乏味的事情,只要打包配置项,配置完成,剩下的
- 这是我们用得比较多的一种设计模式,也是23种标准设计模式之一,使用前面讲的简单工厂设计模式,遇到具体产品经常变换时就不太适合了,违反了开闭设
- 第三篇来的好晚啊,上一篇说了如何向服务器推送信息,这一篇我们看看如
- 由于 * 一般都比较难理解,程序设计者会设计一个 * 接口供开发者使用,开发者只要知道 * 接口的方法、含义和作用即可,无须知道 * 是
- 下载安装openoffice,下载地址:http://www.openoffice.org/download/我安装的目录:输入cmd回车在
- 本文实例为大家分享了Java使用poi操作excel的具体代码,供大家参考,具体内容如下依赖poi的jar包,pom.xml配置如下:<
- 一、首先看图二、lock()跟踪源码这里对公平锁和非公平锁做了不同实现,由构造方法参数决定是否公平。public ReentrantLock
- 本文实例讲述了C#数字图像处理之图像二值化(彩色变黑白)的方法。分享给大家供大家参考。具体如下://定义图像二值化函数private sta
- 最近工作的时候发现软件里面通过查询ARP表查询某一IP对应的ARP条目的时,概率性出现查询到的ARP条目为空,一开始怀疑Ping通但是没有学
- 参考内容:深入理解Java虚拟机(JVM高级特性与最佳实践) ——周志明老师尚硅谷深入理解JVM教学视频——宋红康老师在本文展开前,读者需要
- 360首页搜索效果如下1、完成编写的schoolnet校园网主要目录结构如下主要实现支持中文、拼音首字母、拼音全字母的智能搜索和换肤页面效果
- 目录1、在运行时,由java解释器自动引入,而不用import语句引入的包是()。2、以下关于集合类ArrayList、LinkedList
- privatestring[]GetMoc() { string[]str=newstring[3]; ManagementClassmcC
- Java 8 lambda表达式引入详解及实例eclipse下载安装Help -> EclipseMarketplace ->
- 废话不多说了,直接给大家贴关键代码了。具体代码如下所示:using System;using System.Collections.Gene
- 安装APKpublic class DownLoadApk { public static SharedPreferences shared