arthas常用命令
文章目录
前言
在生产环境或者开发环境中,我们经常会遇到JVM线程死锁导致CPU飙高或者OOM内存溢出的问题。从而需要进行定位问题。我们可以使用阿里开源的一款在线定位JVM的工具“arthas”
一、arthas简介
这里我不用过多的描述,大家可以直接去arthas的网站进行了解,里面文档写得更加详细
https://github.com/alibaba/arthas
这里我只想说下,jdk自带的命令行工具能够实现的,arthas基本都能实现,并且arthas还有一些更加有用的功能。对于我们经常进行jvm OOM定位问题的人来说,arthas缺少了jmap -histo 63903 | head -20查找对象占比最高前几名这个命令。但是不影响arthas的好处。
二、常规使用的命令
安装和启动命令,大家直接看github上artha的READ.md文档就可以了,说的非常详细
启动后,由上图可以知道,arthas会列出当前机器下有多少个java进程,我们选择自己想进行观察的java进程的编号。
刚进来,我们不记得命令,这个时候输入help
就能看到我们能够使用的命令了
下面罗列几个常用的命令
dashboard
用于观察系统情况
jvm
观察jvm信息
thread
用于定位线程死锁问题,我们常用thread -b 来查询死锁
heapdump
到处jvm内存对象,和jmp到处对象一样
这个时候,我们是可以使用jvisualvm 将数据导入观察和上篇文章https://blog.****.net/sinat_36759535/article/details/108430135的导入jvisualvm的方式一样。这里不再阐述
总结
arthas常用的命令很多,后续如果有发现比较好用的会继续补充进来。