测者的性能测试手册:善用开源arthas工具帮你快速完成故障诊断

2019-06-20   出处:V社 北京社  作/译者: Black spider 525  

arthas是什么

arthas是有阿里巴巴开源的Java故障诊断的工具,它采用shell模式的交互,提供丰富的自动补全功能。arthas主要是为了解决如下问题而存在的:

  1. 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?

  2. 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?

  3. 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?

  4. 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!

  5. 是否有一个全局视角来查看系统的运行状况?

  6. 有什么办法可以监控到JVM的实时运行状态?

安装


     上述命令会下载启动脚本文件as.sh到当前目录,假设我们下载到了/user/tester/arthas下面将其加入到环境变量中。vim~/.bash_profile打开文件,在最后一个export后面加入exportPATH=$PAHT:/user/tester/arthas/然后通过source~/.bash_profile使其生效。

简单实用

启动

     输入as.sh启动arthas,出现一下交互信息:


   上述命令会下载启动脚本文件as.sh到当前目录,假设我们下载到了/user/tester/arthas下面将其加入到环境变量中。vim~/.bash_profile打开文件,在最后一个export后面加入exportPATH=$PAHT:/user/tester/arthas/然后通过source~/.bash_profile使其生效。

简单实用

启动

     输入as.sh启动arthas,出现一下交互信息:

     假设3号进程是我们需要监控的,那么我们输入3后,等待一段时间,出现如下页面:

 下想要查看信息输入dashboard,可以看到被监控的进程的详细信息了。

退出

     如果只是退出当前的连接,可以用quit或者exit命令。Attach到目标进程上的arthas还会继续运行,端口会保持开放,下次连接时可以直接连接上。

     如果想完全退出arthas,可以执行shutdown命令。出现下面信息表示退出成功。

推荐阅读:

由于arthas的github仓库中提供了很多经典案例,因此本文就不在举例大家自行查询吧。 https://github.com/alibaba/arthas/issues?q=label%3Auser-case


欢迎给测试窝投稿或参与内容翻译工作,请邮件至editors@testwo.com。也欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,并与我们的编辑和其他窝友交流。
146°|1461 人阅读|0 条评论

登录 后发表评论