上一篇文字已经介绍了一款jdk自带的个工具,可以看到内存中对象的垃圾回收的大体过程,然而线上排查问题,一般都会用其他的工具真正的作为排查问题的利器,今天介绍一款 Arthas 阿里开源的;
官方文档:
https://arthas.gitee.io/quick-start.html#
使用很简单
第一步下载: 执行命令
curl -O https://arthas.aliyun.com/math-game.jar
第二步启动:
java -jar math-game.jar
第三步选择: 选择一个你想监控的java进程
image.png
因为我只运行了了一个,他的序号为1 所以我直接输入1
image.png
出现log 说明启动成功,ok了
第四步查看: 输入命令 dashboard
image.png
这就是当前这个进程的线程堆栈的详细信息
第五步: 比如我想看下其中的一个进程比如cpu飙高,我想知道问题出在了哪里,直接输入命令
thread 341
341 id 也就是图上的 sentinel-time-tick-thread 的id
image.png
会直接告诉你,是哪行代码出了问题,真心强大,使用真心简单
第六步退出: 查找问题完毕,退出arthas
stop