摘要

排查一些生产环境问题,确实蛮好用的。

功能

当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?

我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?

遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?

线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!

是否有一个全局视角来查看系统的运行状况?

有什么办法可以监控到JVM的实时运行状态?

参考文档

使用示例

环境安装

trace命令(追踪某个方法的执行耗时情况,支持多方法,时间过滤)

这个命令用来追踪方法的执行性能,支持按照时间过滤,更详细的参考官方文档 trace命令

正常单层跟踪调用链路

命令:

trace com.zero.secret.web.controller.AlbumController home

效果:

结果里面,第一列是该方法的耗时,第二列是具体的方法,第三列是 代码所在的行号

筛选时间

有时候方法内的方法太多,可以根据时间过滤,筛选出超哥某个时间的方法。命令如下:

trace com.zero.secret.web.controller.AlbumController home '#cost > 10'

带上时间过滤测试的没有效果,下次再试试。

深层次跟踪调用链路

trace命令只能跟踪一层,如果想要跟踪更深层的方法,可以用多方法。

trace -E com.zero.secret.web.controller.AlbumController|com.zero.secret.dal.mapper.AlbumMapper home|selectByPrimaryKey

注意:

trace本身是有耗时的,这里面显示的耗时没有减去trace本身的耗时

watch命令(支持在线查看变量的值)

详细的watch命令查看官方文档。watch命令

命令:

watch com.zero.secret.service.AlbumService getAlbum "{params,returnObj}" -x 2

这里 -x 2 表示参数深度显示2层,默认只显示一层。下面是一层的返回结果,比对看看

这里入参的值就没有显示出来。

有时候要比对 参数在进入方法之前跟执行方法之后的值,比较着看 参数的值的变化,可以添加参数 -b -s 。命令如下:

watch com.zero.secret.service.AlbumService getAlbum "{params,returnObj}" -x 2 -b -s

结果如下:

这里返回的有两组值。第一组值是进入方法时的入参和返回值,第二组是方法执行结束时的入参和返回值。

stack(查看方法调用链路)

详细stack命令参考官方文档 stack命令。

在一些复杂业务中,如果不知道某一个方法的调用链路,可以用这个命令查看调用链路。或者 不同的业务场景调用链路不一样时,也可以使用这个命令确定某个业务数据的调用链路。

命令如下:

stack com.zero.secret.service.AlbumService getAlbum

效果如下:

monitor (监控某个方法在一段时间内容的执行次数、成功的次数,失败的次数,平均耗时)

该命令的官方文档 monitor

命令如下:

monitor -c 10 com.zero.secret.web.controller.AlbumController home

上面是10s 统计一次。

结果如下:

dashboard(查看JVM 资源占用及垃圾回收情况)

thread(可以查看CPU资源占用靠前的几个线程详情,阻塞线程)

详情参考 thread 命令 这个命令可以查看当前CPU资源占用比较靠前的几个线程详情,能直观的看到比较耗资源的几个线程在干什么,方便排查问题。不用dump出堆栈,直接可以看,使用比较轻量级。

查看CPU占用靠前的几个线程

命令如下:

thread -n 3

结果如下:

找当前阻塞其它线程的线程

这个命令目前只能支持找出找出synchronized关键字阻塞住的线程, 如果是java.util.concurrent.Lock, 目前还不支持。实用性不够。 命令如下:

thread -b

结果看一下官方给的例子

logger(可以动态的修改 logger的级别,可以指定 package 的级别)

这个命令也比较实用。以上就是关于 阿里开源Java 线上诊断工具 Arthas 实践 的全部内容了,喜欢的小伙伴别忘了点赞分享一下哦,关注优讯网,优讯有你更精彩!

转载自: https://my.oschina.net/liangxiao/blog/3122810

版权归原作者所有,如有侵权请联系我们删除。

开源java诊断工具,阿里开源Java 线上诊断工具 Arthas 实践相关推荐

  1. java线上诊断工具,Java线上诊断神器Arthas-1

    Arthas 是Alibaba 开源的一款线上诊断工具,相比Java 自带的jinfo, jmap,jstat 等工具更方便(起码不用记那么多参数),而且利用字节码增强技术,可以很好的对线上的问题进行 ...

  2. java计算机毕业设计古惠农产品线上销售系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计古惠农产品线上销售系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计古惠农产品线上销售系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目 ...

  3. 线上诊断之arthas

    上篇文章中我们说到java自带的JVM调优工具,但是自带的工具用户体验不是很好,而且工具间来回切换比较繁琐.这篇我们来说一个阿里提供的体验更好,功能更强大的Java 诊断工具Arthas. artha ...

  4. 阿里云视频点播-->>>阿里云媒资上传工具类及配置

    阿里云媒资上传 官网: 介绍 1.阿里云视频点播 2.视频服务流程 三,测试类中编写代码 四,媒资管理管理配置-存储管理 五,开始编写我们的JAVA代码 1.application.yml 2.配置类 ...

  5. 阿里云oss文件上传工具类

    阿里云oss文件上传工具类 阿里云oss 阿里云oss 导入文件阿里云oss的maven依赖 <!-- 阿里云oss依赖 --><dependency><groupId& ...

  6. 3款完全免费线上视频会议工具

    自从疫情开始,居家办公就成了多数公司的家常便饭,根据工作开通视频会议也成了这些企业维护日常工作的最优解. 市场上能够开线上会议的工具种类繁多,每个产品都各有优势. 对于预算有限不想开通收费线上会议的企 ...

  7. 《Smallpdf》简单好用的线上PDF工具

    smallpdf.com提供了简单好用的线上PDF工具 smallpdf.com, 官方推出了Chrome插件,插件列出了常用的6个功能,点击即可进入相应页面 插件默认跳转到英语界面的页面, 但网站进 ...

  8. 工具-简单介绍ProcessOn线上画图

    简单介绍ProcessOn线上画图工具 标签 : ProcessOn 简单说明书 线上 流程图 UML 原型 软件 工具 ProcessOn官网地址 ProcessOn注册链接 请点击这里! Proc ...

  9. 微服务引擎的线上流量治理最佳实践

    简介:本实践将重点介绍如何快速集成主流开源微服务框架,实现业务零改造,解决开源框架在生产落地过程中的痛点,例如无损上下线.标签路由等,并通过托管微服务开源组件(API网关.注册中心.配置中心等)的服务 ...

  10. Arthas使用教程 阿里巴巴开源项目、史上最强java线上诊断工具

    什么是 Arthas 摘录一段官方 Github 上的简介 Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱. 当你遇到以下类似问题而束手无策时,Arthas 可以帮助你解决: 这 ...

最新文章

  1. 概率论中指数分布介绍及C++11中std::exponential_distribution的使用
  2. Linux c基本知识整理
  3. python视频课程推荐-听说程序员都在用,5款Python开发工具推荐
  4. 商业软件授权模式的反思--转载
  5. php中update语句修改多个字段,Myabtis中批量更新update多字段
  6. html 甘特图_Rplotly|交互式甘特图(Gantt chart)项目管理/学习计划
  7. 请对比html与css的异同,css2与css3的区别是什么?
  8. 给你的Linux把把脉(内存、磁盘、CPU、网络)
  9. JSF MVC 流程
  10. 2018-2019互联网大厂算法/深度学习/NLP面试笔记
  11. Flash Builder4.7安装破解
  12. C代码编译过程,cmakelist基础步骤
  13. SecureCRT官方下载地址
  14. android qq robot,KG Robot(QQ机器人手机版)
  15. 小浩之利用Java完成一个抽奖小程序
  16. sopcast安装指南
  17. Unity3D游戏开发之路:一月工作总结
  18. html自动生成价格,Excel技巧:用VLOOKUP函数制作产品报价单,自动生成价格!
  19. 类加载——类加载时机、类加载过程、类加载器
  20. 通过PyFMI读取FMU文件及PyFMI的安装教程

热门文章

  1. xib ? Interface Builder 中的 File's Owner 和 First Responder 分别是什么
  2. 机器学习(7)——Logistic回归(从疝气病症预测病马的死亡率)
  3. C++编程语言中类对象的赋值与复制介绍(三)
  4. 华为 鸿蒙系统(HarmonyOS)
  5. 博客园url跳转导致xss
  6. 【1】ArcGIS API for JavaScript 4.5/4.6 本地部署
  7. maven项目的创建
  8. mac上设置新版chrome浏览器跨域
  9. SSH(Struts2+Spring+Hibernate)框架搭建流程
  10. 赛尔译文 | 基础模型的机遇与风险 (四)