Alibaba Arthas 学习与总结

  • arthas
    • 安装方法
      • 通过自动下载
      • 直接下载程序进启动
    • 使用
      • 常用的命令
        • thread
        • dashboard
        • heapdump
        • jad
        • redefine

arthas

这个是阿里出的一款用于jvm 观察与调优的一个工具。目前来看是最好用的了。
git项目地址
文档中文说明
快速上手指南
这个说明文档很详细了而且都是中文的。我只记录一下我自己学习和使用过程中的一些经验

安装方法

通过自动下载

下载 arthas-boot.jar
用再下载目录直接运行

java -jar arthas-boot.jar

启动后会帮你检查目前正在运行的java程序。
若没有java 进程会告诉你让你自己输入java进程编号来启动

Can not find java process. Try to pass < pid > in command line.

若有java程序启动会给予编号,选择编号就直接会下载 相关组件然后进行启动运行

直接下载程序进启动

阿里仓库下载地址 3.3.3 版本
下载解压后里面就包含了所有需要的内容了
启动也是一样的命令

java -jar arthas-boot.jar

后面就都是一样的只是这样就免去了下载的东西。有时再内部环境是没法直接下载的所以通过此办法也可以解决。

顺利启动后会有的界面
Alibaba Arthas 学习与总结_第1张图片

如此就完成了启动

使用

通过help 命令可以获取 arthas中的所有命令内容
Alibaba Arthas 学习与总结_第2张图片

常用的命令

thread

thread 命令可以显示 当前监控的java进程中的所有线程信息
Alibaba Arthas 学习与总结_第3张图片
还可以通过thread 加ID 来获取 线程堆栈的信息
如thread 22 查看Gogo shell的 堆栈信息
Alibaba Arthas 学习与总结_第4张图片

dashboard

这个就是模仿的控制台界面系统会定时刷新信息。手机的都是线程列表和内存分配信息以及runtime的信息
Alibaba Arthas 学习与总结_第5张图片

heapdump

堆dump命令。导出目前堆的dump信息。不加文件名会默认生成再临时目录中。 也可指定文件名称导出到指定文件中去,但是指定文件名称必须是.hprof文件扩展名的

heapdump
heapdump /XXX/xx/xxx.hprof

jad

反编译。通过jad 命令直接可以看到当前运行中类对象的源码。通过查看源码就可以看出很多为了。还比如动态生成的类方法等待。

redefine

热替换,不用重启项目直接 进行redefine 指定类就可以完成热替换的功能。保证不停机更改方法实现,但是目前该命令只能修改方法内的实现,无法修改方法名称,以及属性名称等。

你可能感兴趣的:(Java,jvm,jvm,java)