本文主要围绕着Arthas是什么、能做什么、安装和使用等三个方面内容来讲解,希望对初学者和对此有兴趣的朋友有帮助。
一、 Arthas是什么
文档地址: https://alibaba.github.io/arthas/index.html
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
二、 Arthas能做什么
比如可以解决下面的问题,当然了,远远不止下面的这些问题。
1.这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
2.我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
3.遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
4.线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
5.是否有一个全局视角来查看系统的运行状况?
6.有什么办法可以监控到JVM的实时运行状态?
三、 Arthas安装和简单使用
两种入门方式,简单demo和boot。
(1)简单Demo
下载
wget https://alibaba.github.io/arthas/arthas-demo.jar
使用
java -jar arthas-demo.jar
arthas-demo是一个简单的程序,每隔一秒生成一个随机数,再执行质因式分解,并打印出分解结果。
(2)boot
下载
wget https://alibaba.github.io/arthas/arthas-boot.jar
使用
java -jar arthas-boot.jar
- 执行该程序的用户需要和目标进程具有相同的权限。比如以admin用户来执行:sudo su admin && java -jar arthas-boot.jar 或 sudo -u admin -EH java -jar arthas-boot.jar。
- 如果attatch不上目标进程,可以查看~/logs/arthas/ 目录下的日志。
- 如果下载速度比较慢,可以使用aliyun的镜像:java -jar arthas-boot.jar --repo-mirror aliyun --use-http
- java -jar arthas-boot.jar -h 打印更多参数信息。