开发者学堂课程【线上问题排查利器 Alibaba Arthas(上):基础命令之二】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/746/detail/13189
基础命令之二
内容介绍:
一、基础命令介绍
二、课程小结
一、基础命令介绍
1.session
Session 意为会话,作用为查看会话的信息。arthas 可以被认为实际上是启动了一个服务器的,则用户对于每一个会话的处理或者每一个程序的一个跟踪,都是在程序的内部创建了一个会话。由此,用户可以通过这个 session 查看当前会话的一些信息。
例如,打开程序,在一个界面中 mathgame 游戏应仍处于运行中,在另一个界面中输入arthas-boot.jar,点击回车,程序将会找到 demo 的进程,输入 session,按回车键,就会显示java 的进程 ID,显示为 java_PID,7125的进程ID 是用户粘附在java 包上的程序,session_ID 是指会话 ID。
如若用户再打开一个 Java 程序,输 入arthas-boot.jar,点击回车,会输出两个PID 不同的 Java 进程,输入1,按回车键,再输入 session,按回车键,则显示字符串与刚刚程序显示不同,此为两个不同监听或粘附会话的 ID,相当于两个不同会话同时粘附在jar进程上。
2.reset
Reset 中文意为重置,作用为重置增强类,将被 arthas 增强过的类全部还原,增强的功能使得用户可以对类在运行过程中再进行一些调整或者是增强,其实也是为了在运行过程中执行用户临时增加的功能。如果用户输入reset,就可以使得用户当前跟踪的类还原到没有跟踪前的状态,但最终不会改变服务器上真实的类,所以当用户服务器关闭时,服务器也会自动重置所有增强过的类,不需要用户多次输入reset 进行重置。但如果有多个会话,用户敲击reset 或者用reset 带参数,用户就可以使 reset 中一部分类还原,程序支持通倍符。
还原指定类输入 reset test 为指示还原指定的类,若想还原所有以 list 结尾的类,可输入reset*list,若想还原所有的类,输入 reset 即可。
若用户想要追踪指定的方法,输入 trace demo.MathGame print,按回车键,程序会不断追踪当前打印方法中的一些信息,每一秒中自动打印一次,输出内容中包括运行时间,线程的 ID,用户可以看到print 方法是在main 中树立,优先级,执行的时间以及类加载器。如果用户想要停止追踪,即可输入 reset,进行重置,此时可以选择带或者不带参数,不带参数即为重置所有的类。
3.version
Version 中文意为版本,作用为输出当前加载的版本号。实际操作中,首先输入 cls 清除屏幕,其次在程序中输入 ersion,按回车键,即可在程序中看到版本号。
4.history
History 中文意为历史,作用为显示输出打印命令历史。实际操作中,输入history,程序即可显示用户所有输入过的命令。
5.quit
Quit 作用为退出当前 arthas 客户端,其他arthas 客户端不受影响。例如,当用户同时开启两个 arthas 客户端,根据7125进程号可知两个进程都为跟踪,输入quit,按回车键,则当前客户端退出并回到 Linux 下面,但是该操作不会影响其它的会话,另一个客户端仍处于粘上 arthas 服务器状态。
6.stop
Stop 作用为关闭 arthas 服务端,所有 arthas 客户端全部退出。例如程序中有session,则每一个 session 将会退出并且程序会显示程序服务器会关闭。进入实际操作中,在正在追踪程序中输入 stop,按住回车,程序则显示arthas 服务器关闭,当前会话结束且另一端跟踪的会话也会结束,程序将退回到Linux 状态。
7.Keymap
Kemap 作用为用来显示arthas 快捷键列表及自定义快捷键。
Arthas 命令快捷键具体包含以下几种:ctrl+a 为跳到行首。ctrl+e为跳到行尾。ctrl+f 为向前移动一个单词。ctrl+b 为向后移动一个单词。按键盘左方向键后,光标向前移动一个字符。按键盘右方向键后,光标向后移动一个字符。按键盘下方向键后,下翻显示下一个命令。按键盘上方向键后,上翻显示上一个命令。ctrl+shift=/或ctrl+h 为向后删除一个字符。ctrl+u 为撤销上一个命令,相当于清空当前行。ctrl+d 为删除当前光标所在字符。ctrl+k 为删除当前光标到行尾的所有字符。ctrl+a 为自动补全,相当于敲TAB。ctrl+j 或ctrl+m 为结束当前行,相当于敲回车键。
实际操作的第一次运行中慢一点是为了二次启动服务器,输入1,按回车键,再输入keymap,按回车键,用户即可以看到arthas 当中所有的快捷键,包括快捷键解释。例如,用户在敲击一些代码时,按一下Ctrl+a,则会跳到光标的最前面,该快捷键将为用户操作提高效率。实际上,按home 和end 也可以调节光标到最前面与最后面。
程序还具有后台异步命令相关快捷键,例如Ctrl+c 为强行终止当前命令,与在Linux 中相同,在程序中较为常用。Ctrl+z 为把当前命令挂起,就是使得程序后台不执行,后续可以bg/fg重新支持此命令,或者kill 掉。Ctrl+a 为回到行首。Ctrl+e 为回到行尾,此操作与arthas 命令快捷键操作一致。
二、课程小结
Session 命令用于显示当前会话的信息。当前会话的信息包括两种,一种为进程的ID,另一种为会话的 ID,会话的 ID 为一串连续且不重复的字符串。
Reset 命令用于重置类的增强,服务器关闭的时候会自动重置所有的累。
Version 用于显示当前arthas 的版本号。
Quit 用于退出当前会话,不会影响其他会话。
Stop 用于退出 arthas 服务器,所有会话都会停止。
Keymap 命令用于获取快捷键。








