开发者学堂课程【线上问题排查利器 Alibaba Arthas(上):快速入门:常用命令接触】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/746/detail/13187
快速入门:常用命令接触
内容介绍:
一、五种常用命令介绍
二、课程小结
一、五种常用命令介绍
1.dashboard 仪表板
Dashboard 仪表板主要显示Java 蓄力机内存的一个使用情况。首先,用户需要确认 demo 的程序处在仍在运行且未被退出的状态,并且启动了 arthas-boot 的命令,将其粘附到 arthas-demo 上面。粘附上后,即可进行后续操作。第一条命令输入 dashboard ,如若用户忘记拼写,即可输入前半部分后,按 table 键,程序则会自动补全。按回车,即会显示仪表板,此仪表板隔一段时间会自动进行刷新。
仪表板内容主要分四部分,仪表板界面上面部分表示运行所有的线程,进程是由线程组成。中部内容表示仪表板内存使用情况。下部表示 JVM 蓄力机运行时的状态。下半部分右侧表示 Linux 内存的信息。下半部分左右存在着一个对应关系,其包括操作系统的名字、操作系统的版本、java的版本、java 的 home 所在的目录等等内容。当前内容,不进行详细讲解,用户仅知其为一个面板,此面板能显示许多内存信息,并且会进行刷新。在仪表板界面按住 q 或者 Ctrl+C 即可退出。
2.通过 thread 命令来获取到 arthas-demo 进程的 Main Class
首先,输入 window 下面的命令cls 进行清屏。然后,输入 thread,点击回车,此时会显示所有正在运行的线程。该显示内容与dashboard上半部分内容相似。选择用户想看的某一个线程,可以输入1,此时1代表线程的id 号,此时输入thread 1只显示一号线程的状态。time waiting 表示等待的时间,因为程序每隔一秒进行一次暂停,由此代码中包含 sleep,表示代码处于等待中。
3.通过 jad 来反编译 Main Class
Jad 可以反编译 Java 的 class 文件,将其编译成Java 原代码,该操作对于用户在实际运维与检测错误过程中具有很大帮助。在没有源代码的情况下,可用 jad 进行反编译。假设要反编译类,输入 jad demo.mathgame,点击回车,即将整个 class 文件进行反编译。classloader 为程序类加载器,location 为 jad demo.mathgame 所在的jar 包,下面即所有被反编译的源代码。
4.Watch
Watch 中文意为监视。watch 用于监视程序在执行过程中输入参数是什么,输出参数是什么以及返回值是什么。watch 起到一个监视的作用,其类似于在开发工具里的dbug,用户可以看到每一个函数的返回值。但watch 是程序在实际执行过程中的某一个时刻的返回值,所以非常方便用户进行监测。
watch 的具体命令为watch demo.MathGame primeFactors returnObj,首先,demo.MathGame 为用户要监视的包名和类名,primeFactors 为用户要监视的方法,returnObj 为监视的返回值,returnObj 是ognl 表达式。
实际操作中执行 MathGame primeFactors returnObj,由于每过一秒钟调用一次,所以程序每一次的返回值是不同的。点击回车,会发现程序每过一秒钟重复一次,按 Q 键或 Ctrl+C 退出程序。程序返回值是一个ArrayList 的对象,输出为ArrayList 中两个值。第二次运行中,返回四个值。第三次运行显示result=null,表示本次值为负值,故没有生成返回值。如果得到ArrayList 值,证明经过质因数分解计算得到的值。
5.退出 arthas
如果只是退出当前的链接,可以用quit 或者exit 命令。attach 到目标进程上的arthas 还会继续运行,端口会保持开放,下次连接时可以直接连接上。如果想完全退出arthas,可以执行stop 命令。
首先,输入quit,点击回车,即用户退出了arthas,再次点击回车并扣1,程序仍可以连接。如果想彻底退出,输入stop,按回车,即可退出。stop 表示把整个会话进行结束,注意该操作并不会影响原有系统运行,仅使arthas退出。
二、课程小结
1.arthas 的启动
输入Java-jar arthas-boot.jar。
2.常用命令的作用
Dashboard 功能为显示 JVM 中内存的情况,JVM 中环境信息。thread功能为显示当前进程所有线程信息。jad 功能为反编译指定的类或方法。watch 功能为监视某个方法执行情况,监视返回值。quit,exit,stop 功能为退出或停止 arthas。