Arthas —— java诊断工具

在不知道Arthas之前

  • 如果线上出bug,无法debug的情况,需要重新打日志发布?
  • 修改的代码没有执行到,线上的代码和本地不一样?
  • 怎么监控JVM实时运行状态?

这些问题都在折磨着我们,你如果没有其他的更好方案或者方法解决,Arthas[1] 适合你。

基础用法

  1. 下载arthas-demo 使用java -jar启动
curl -O https://alibaba.github.io/arthas/arthas-demo.jar
java -jar arthas-demo.jar

选择你需要attach的目标进程,(3395进程是本地启动的一个java应用)


Arthas —— java诊断工具_第1张图片
image.png

选择1 之后


Arthas —— java诊断工具_第2张图片
image.png
  1. 观察线程3395 java应用中一个接口的入参和出参
watch 接口全限定名 接口名 "{params,returnObj}" -x 2 
Arthas —— java诊断工具_第3张图片
image.png
  1. 反编译 java应用中的一个类。
jad 接口全限定名
Arthas —— java诊断工具_第4张图片
image.png
  1. 查看当前jvm 相关信息
jvm

命令总览

image.png

最后

命令太多记不住怎么办? IDE插件助你腾飞 ——Idea arthas 插件插件安装指南。
右键 - > 选择对应的操作,命令已经复制,去粘贴就好了。

Arthas —— java诊断工具_第5张图片
image.png

参考:https://github.com/alibaba/arthas/issues/1003
        https://alibaba.github.io/arthas/


  1. Arthas支持JDK 6+,支持Linux/Mac/Winodws,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断 ↩

你可能感兴趣的:(Arthas —— java诊断工具)