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
wget https://alibaba.github.io/arthas/arthas-boot.jar java -jar arthas-boot.jar
4
回车
这时候就进入的Arthas的操作界面了;
第二种:使用as.sh
Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲 回车 执行即可:curl -L https://alibaba.github.io/arthas/install.sh | sh
直接在shell下面执行./as.sh,就会进入交互界面。
./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 平台
rm -rf ~/.arthas/ rm -rf ~/logs/arthas
Windows平台直接删除user home下面的.arthas和logs/arthas目录
启动异常情况
Target process 24501 is not the process using port 3658, you will connect to an unexpected process
com.shirc.arthasexample.ArthasExampleApplication的进程;ctrl+c或者exit退出,其实没有把那个会话正常关闭;
解决方法: 重新进入刚刚那个会话;shutdown 正常关闭会话; 才能重新打开其他进程的会话;
正常关闭
shutdown
示例项目
可以下载我用来调试的项目 Arthas 示例项目:https://github.com/shirenchuang/arthas-example