Java诊断神器-Arthas之一:工欲善其事必先利其器

379

写在前面 想很简单,做很难,坚持更难,克服惰性。每天学一点,不会的就少一点。 养成习惯很重要,先从点赞开始吧!关注[程序员之道],前行道路不再迷茫!

Arthas是什么

Arthas(阿尔萨斯)是Alibaba开源Java诊断工具,你是否遇到如下问题:

  1. 为什么本地代码跑的好好的,到了线上就有各种异常?
  2. 新提交的代码好像没生效,提交错了?线上当前运行的是哪个版本?
  3. 生产环境出问题了,没办法debug,咋办,人肉吧,可能出错的地方,挨个加日志。排查到问题之后再去掉。
  4. 有没有办法监控到JVM的实时运行状态?

程序员Debug的烦恼

其实平时遇到最多的问题就是,明明一段代码,在本地运行perfect,自己构造了几个测试用例,也万无一失。可到了生产环境,就出错了,咋办?没有办法debug,利用二分法,先少加一些日志,上线一把,找到出错的日志位置,继续二分,再加日志,如此循环往复,直到找到出错位置。又或者是,在所有可能出错的位置,先都加上日志,逐步缩小错误范围,一步步排查,但是心可是真累啊!程序员宝宝太不容易了。 在这里插入图片描述 如果线上生产环境,每次发布都需要审批,那就更头大了。 在这里插入图片描述

此时你迫切需要和我一起学习Arthas,利用神器进行程序诊断!!!

Arthas支持JDK1.6+,支持Linux、Mac、Windows,通过命令行交互方式,同时还支持tab补全,无需重启或修改线上程序,直接debug,简直是爽歪歪啊,早点找到程序的Bug,喝杯茶、找个妹子聊聊天也是好的哇!

Arthas安装

安装Arthas可谓是非常简单,因为它根本就不需要安装,Arthas是通过jar包方式提供给使用者。

下载方式:

curl -O https://arthas.aliyun.com/arthas-boot.jar

使用方式:

java -jar arthas-boot.jar

在这里插入图片描述

其实知道上面这个使用方式,基本也足够了,不过Arthas有非常丰富的功能,如果有兴趣的话,可以求助下help大神。

java -jar arthas-boot.jar -h

在这里插入图片描述

Arthas卸载

因为使用Arthas只是下载了一个jar包,并没有额外安装什么东西,所以本质上其实没有什么软件好卸载的了。 在这里插入图片描述

但是因为运行Arthas调试,会产生一些日志及Arthas本身的一些日志。删除这些日志文件就可以了,不删除其实也没啥影响,只是占用了一些存储空间而已。

首先删除刚才下载的jar包,额,没有这么健忘吧,我刚才吧jar包下载到哪里去了呢.......

Linux、Unix或Mac系统

rm -rf ~/.arthas/
rm -rf ~/logs/arthas

Window系统

删除user home下的.arthas和log/arthas目录

下期预告,可以大显身手了,调试一个程序试试