Alibaba Arthas 3.1.5版本支持火焰图,快速定位应用热点
Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。
- Gitee: https://gitee.com/arthas/arthas
- 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 start
Started [cpu] profiling
默认情况下,生成的是cpu的火焰图,即event为`cpu`。可以用`--event`参数来指定。
获取已采集的sample的数量
$ profiler getSamples
23
查看profiler状态
$ profiler status
[cpu] profiling is running for 4 seconds
可以查看当前profiler在采样哪种`event`和采样时间。
生成svg格式结果
$ profiler stop
profiler output file: /tmp/demo/arthas-output/20191125-135546.svg
OK
默认情况下,生成的结果保存到应用的`工作目录`下的`arthas-output`目录里。
通过浏览器查看arthas-output下面的profiler结果
默认情况下,arthas使用3658端口,则可以打开: http://localhost:3658/arthas-output/ 查看到`arthas-output`目录下面的profiler结果:
点击可以查看具体的结果:
如果是chrome浏览器,可能需要多次刷新。
grep命令支持更丰富的选项
标准的linux grep命令支持丰富的选项,可以很方便地定位结果的上下文等。
新版本的`grep`命令支持更多标准的选项,下面是一些例子:
sysprop | grep java
sysprop | grep java -n
sysenv | grep -v JAVA
sysenv | grep -e "(?i)(JAVA|sun)" -m 3 -C 2
sysenv | grep JAVA -A2 -B3
thread | 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
- 火焰图的一个参考文章:https://openresty.org/posts/dynamic-tracing/
最后,Arthas 正在参加2019年度最受欢迎开源中国软件评选,急需大家宝贵的一票支持!!查看
投票后可以到issue里参与图书抽奖:https://github.com/alibaba/arthas/issues/951

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
YurunHttp v3.3.0 发布,新增支持 Http2 请求
YurunHttp 是开源的 PHP HTTP 类库,支持链式操作,简单易用。 支持所有常见的 GET、POST、PUT、DELETE、UPDATE 等请求方式,支持 Http2、WebSocket、浏览器级别 Cookies 管理、上传下载、设置和读取 header、Cookie、请求参数、失败重试、限速、代理、证书等。 git 仓库中 examples 目录里是示例代码! 更新日志(v3.3.0): 新增支持 HTTP/2.0 修复连接复用问题 $http = new HttpRequest; $http->protocolVersion = '2.0'; // 这句是关键 $response = $http->get('https://wiki.swoole.com/'); Curl、Swoole Handler 都支持 Http2,但需要注意的是编译时都需要带上启用 Http2 的参数。 查看是否支持: Curl:php --ri curl Swoole:php --ri swoole 重大版本更新日志 每个小版本的更新日志请移步到 Release 查看 v...
-
下一篇
RIPE NCC 已分配完可用池中最后剩余的 IPv4 地址
负责英国、欧洲、中东和部分中亚地区互联网资源分配的欧洲网络协调中心(RIPE NCC)宣布,全球所有 43 亿个 IPv4 地址已全部分配完毕,这意味着没有更多的 IPv4 地址可以分配给 ISP(网络服务提供商)和其他大型网络基础设施提供商。 RIPE NCC 在一封电子邮件中确认,UTC+1时间2019年11月25日 15:35 分(北京时间 22:35 分),RIPE NCC 从可用池中的最后剩余地址进行了最后的分配。如今,全球的 IPv4 地址已经用完。 但这并不意味着 IPv4 地址空间完全枯竭。RIPE 还会从停止运营或需求减少的企业和机构手中回收 IPv4 地址,但少量回收的地址是远远无法满足需求的。RIPE 未来将只会向过去从未分配到 IPv4 地址的实体分配地址,它在声明中表示,这一事件是迈向全球 IPv4 地址空间枯竭的又一步。新兴的 IPv4 流转市场和运营级网络地址转换(Carrier Grade Network Address Translation 或 CGNAT)虽然能延缓但无法解决真正的问题。它呼吁大规模部署 IPv6。 事实上,IPv4 顶级地址(to...
相关文章
文章评论
共有0条评论来说两句吧...