Arthas

Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。

  • Github:https://github.com/alibaba/arthas

  • 文档:https://alibaba.github.io/arthas

Arthas 3.1.5版本带来下面全新的特性:

  • 开箱即用的Profiler/火焰图功能

  • grep命令支持更丰富的选项

  • monitor/tt/trace等命令提供更精确的时间统计

  • telnet/http协议共用3658端口

Profiler/Frame Graph/火焰图

火焰图的威名相信大家都有所耳闻,但可能因为使用比较复杂,所以望而止步。

在新版本的Arthas里集成了async-profiler,使用profiler命令就可以很方便地生成火焰图,并且可以在浏览器里直接查看。

  • profiler命令wiki: https://alibaba.github.io/arthas/profiler.html

profiler 命令基本运行结构是:

profiler action [actionArg]

下面介绍如何使用。

启动profiler

$ profiler startStarted [cpu] profiling

默认情况下,生成的是cpu的火焰图,即event为cpu。可以用--event参数来指定。

获取已采集的sample的数量

$ profiler getSamples23

查看profiler状态

$ profiler status[cpu] profiling is running for 4 seconds

可以查看当前profiler在采样哪种event和采样时间。

生成svg格式结果

$ profiler stopprofiler output file: /tmp/demo/arthas-output/20191125-135546.svgOK

默认情况下,生成的结果保存到应用的工作目录下的arthas-output目录里。

通过浏览器查看arthas-output下面的profiler结果

默认情况下,arthas使用3658端口,则可以打开:http://localhost:3658/arthas-output/ 查看到arthas-output目录下面的profiler结果:

点击可以查看具体的结果:

如果是chrome浏览器,可能需要多次刷新。

grep命令支持更丰富的选项

标准的linux grep命令支持丰富的选项,可以很方便地定位结果的上下文等。

新版本的grep命令支持更多标准的选项,下面是一些例子:

sysprop | grep javasysprop | grep java -nsysenv | grep -v JAVAsysenv | grep -e "(?i)(JAVA|sun)" -m 3  -C 2sysenv | grep JAVA -A2 -B3thread | grep -m 10 -e  "TIMED_WAITING|WAITING"

感谢社区里 @qxo 的贡献。

telnet/http协议共用3658端口

默认情况下,Arthas的Telnet端口是3658,HTTP端口是8563,这个常常让用户迷惑。在新版本里,在3658端口同时支持Telnet/HTTP协议。

在浏览器里访问 http://localhost:3658/ 也可以访问到Web Console了。

在后续的版本里,考虑默认只侦听 3658端口,减少用户的配置项。

monitor/tt/trace等命令提供更精确的时间统计

以前Arthas被诟病比较多的一个问题是,monitor/tt/trace等命令时间统计误差大。因为以前只使用了一个int来保存时间,所以不精确。

在新版本里,改用一个高效的stack来保存数据,时间的准确度大大提升,欢迎大家反馈效果。

感谢社区里 @huangjIT 的贡献。

总结

总之,3.1.5版本的Arthas引入了开箱即用的Profiler/火焰图功能,欢迎大家使用反馈。

  • Release Note: https://github.com/alibaba/arthas/releases/tag/arthas-all-3.1.5

有道无术,术可成;有术无道,止于术

欢迎大家关注Java之道公众号

好文章,我在看❤️

阿里巴巴 Arthas 3.1.5版本支持火焰图,快速定位应用热点相关推荐

  1. ali arthas 火焰图_阿里巴巴 Arthas 3.1.5版本支持火焰图,快速定位应用热点

    转自: 横云断岭的专栏 Arthas Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱. Github:https://github.com/alibaba/arthas 文档:ht ...

  2. java 性能调优,使用 async-profiler + FlameGraph火焰图 分析cup消耗热点代码

    参考文章 https://www.jianshu.com/p/9364028cca4e 目的:通过分析工具找到项目中占用cpu时间最长的代码片段,优化热点代码,达到优化内存的效果. 1.准备工具,从g ...

  3. 程序员精进之路:性能调优利器--火焰图

    作者:厉辉,腾讯 CSIG 后台开发工程师 本文主要分享火焰图使用技巧,介绍 systemtap 的原理机制,如何使用火焰图快速定位性能问题原因,同时加深对 systemtap 的理解. 让我们回想一 ...

  4. 参数调优为什么要采样_程序员精进之路:性能调优利器--火焰图

    本文主要分享火焰图使用技巧,介绍 systemtap 的原理机制,如何使用火焰图快速定位性能问题原因,同时加深对 systemtap 的理解. 让我们回想一下,曾经作为编程新手的我们是如何调优程序的? ...

  5. 编程新手该如何调优程序?程序员必备性能调优利器——火焰图

    本文主要分享火焰图使用技巧,介绍 systemtap 的原理机制,如何使用火焰图快速定位性能问题原因,同时加深对 systemtap 的理解. 让我们回想一下,曾经作为编程新手的我们是如何调优程序的? ...

  6. 性能优化必备——火焰图

    引言 本文主要介绍火焰图及使用技巧,学习如何使用火焰图快速定位软件的性能卡点. 结合最佳实践实战案例,帮助读者加深刻的理解火焰图构造及原理,理解 CPU 耗时,定位性能瓶颈. 背景 当前现状 假设没有 ...

  7. 动态追踪技术(中) - Dtrace、SystemTap、火焰图

    http://openresty.org/cn/presentations.html http://weibo.com/agentzh?is_all=1 http://openresty.org/po ...

  8. 超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下

    如果你经常遇到 Java 线上性能问题束手无策,看着线上服务 CPU 飙升一筹莫展,发现内存不断泄露满脸茫然.别慌,这里有一款低开销.自带火焰图.让你大呼好用的 Java 性能分析工具 - async ...

  9. CentOS 7 Linux实时内核下的epoll性能分析后续 | 火焰图分析

    在<CentOS 7 Linux实时内核下的epoll性能分析>从源码角度分析了epoll在实时内核和非实时内核之间的差异,为了更好的展示问题所在,这里给出epoll和select在实时内 ...

最新文章

  1. JAVA静态方法是否可以被继承 6,JAVA静态方法是否可以被继承?
  2. java多线程面试_Java多线程和并发基础面试问答,看过后你不会后悔
  3. mnist数据集svm python_python支持向量机分类MNIST数据集
  4. RHEL6入门系列之二十六,利用rpm进行软件包管理
  5. 亚马逊无人商店因拒收现金被美国多地禁止:被认定歧视消费者
  6. 使用Maven构建Web项目-测试
  7. 投资人教你怎么写能拿到钱的商业计划书
  8. linux超级终端配置交换机路由器
  9. 百度html的json解析,百度调用API返回json数据解析
  10. 无法连接到SQL SERVER数据库
  11. win10共享打印机搜索不到计算机,大师告诉您Win10搜不到共享打印机的操作方案...
  12. Latex中如何插入参考文献的两种方法
  13. windows下的diskpart指令修复U盘分区
  14. linux 搜狗输入法使用技巧,在Deepin 20系统中使用官方搜狗输入法的技巧
  15. 可汗学院-统计学-学习笔记
  16. Mac微信小助手(免认证登录、多开、防撤回)---强烈推荐
  17. 牛客竞赛C/C++语言基础22198 选村长
  18. 户外直播、移动直播遇到弱网信号差,如何保证流畅又高清画面传输?
  19. 笔记本简单使用eNSP的云连接外网
  20. CSS设置文字自动换行

热门文章

  1. Acticity 启动 AMS
  2. 查看python所有内置方法_python 内置方法
  3. qtreewidgetitem 文字内存太长换行_table文字溢出显示省略号问题
  4. python写文件格式转换程序_python实现txt文件格式转换为arff格式
  5. 使用流进行通讯的一种可能犯的错误 (InputStream + OutputStream)
  6. LeetCode:2. 两数相加(中等)
  7. 高效的半同步/半异步模式的实现
  8. 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
  9. Python2、3字典比较函数
  10. httrack 拷贝网站到本地(好东西,但是发现考的不全)