初始 Java 诊断工具 -Arthas
image.png
Arthas(读:阿尔萨斯) 是什么
Arthas 是 Alibaba 开源的 Java 诊断工具
Arthas 能干什么
当你遇到以下类似问题而束手无策时,Arthas 可以帮助你解决:
这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
是否有一个全局视角来查看系统的运行状况?
有什么办法可以监控到 JVM 的实时运行状态?
Arthas 支持 JDK 6+,支持 Linux/Mac/Winodws,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
快速安装
第一种:使用 arthas-boot(推荐)
下载 arthas 的 jar 包; 然后启动 jar 包 java -jar arthas-boot.jar
image.png
4
回车
image.png
这时候就进入的 Arthas 的操作界面了;
第二种:使用 as.sh
Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲 回车 执行即可:curl -L https://alibaba.github.io/arthas/install.sh | sh
直接在 shell 下面执行./as.sh,就会进入交互界面。
image.png
image.png
./as.sh -h 来获取更多参数信息。curl -L https://arthas.gitee.io/install.sh | sh
Cloud Toolkit 插件一键诊断远程服务器
简单配置,无须手动安装 Arthas
通过 Cloud Toolkit 插件使用 Arthas 一键诊断远程服务:https://shirenchuang.blog.csdn.net/article/details/101049622
卸载
在 Linux/Unix/Mac 平台
Windows 平台直接删除 user home 下面的.arthas 和 logs/arthas 目录
启动异常情况
Target process 24501 is not the process using port 3658, you will connect to an unexpected process
image.png
image.png
com.shirc.arthasexample.ArthasExampleApplication 的进程;ctrl+c 或者 exit 退出,其实没有把那个会话正常关闭;
解决方法: 重新进入刚刚那个会话;shutdown 正常关闭会话; 才能重新打开其他进程的会话;
正常关闭
shutdown
示例项目
可以下载我用来调试的项目 Arthas 示例项目:https://github.com/shirenchuang/arthas-example
image.png
版权声明: 本文为 InfoQ 作者【石臻臻的杂货铺】的原创文章。
原文链接:【http://xie.infoq.cn/article/be442105f9def4d5fb2dc1da2】。未经作者许可,禁止转载。
评论