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常用命令
启动后,由上图可以知道,arthas会列出当前机器下有多少个java进程,我们选择自己想进行观察的java进程的编号。
刚进来,我们不记得命令,这个时候输入help
arthas常用命令
就能看到我们能够使用的命令了
下面罗列几个常用的命令
dashboard
用于观察系统情况
arthas常用命令

jvm
观察jvm信息
arthas常用命令

thread
用于定位线程死锁问题,我们常用thread -b 来查询死锁
arthas常用命令
heapdump
到处jvm内存对象,和jmp到处对象一样
arthas常用命令
这个时候,我们是可以使用jvisualvm 将数据导入观察和上篇文章https://blog.****.net/sinat_36759535/article/details/108430135的导入jvisualvm的方式一样。这里不再阐述

总结

arthas常用的命令很多,后续如果有发现比较好用的会继续补充进来。