Arthas使用指南(上)

简介: Arthas 是Alibaba开源的Java诊断工具。安装在系统所在服务器。可以帮助开发人员或者运维人员查找问题,分析性能,bug追踪。

解决什么问题 & 适用场景


解决问题:


1、以全局视角来查看系统的运行状况、健康状况。

2、反编译源码,查看jvm加载的是否为预期的文件内容。

3、查看某个方法的返回值,参数等等。

4、方法内调用路径及各方法调用耗时。

5、查看jvm运行状况。

6、外部.class文件重新加载到jvm里。

等等…


场景:


1)调用接口时,接口返回异常信息,如果该异常信息没有清晰的定位到代码,那么我们通常只能依靠大脑回忆代码,来估计错误发生地了,如果无法估计,一般情况下就会进入测试环境,模拟复现,如果无法复现 _。

2)这个查询,耗时20s,我们想要分析一下到底是哪些代码导致的。但是该方法内部又穿插调用了其它业务功能方法,难道手写System.currentTimeMillis()自己做减运算,还是guava的StopWatch亦或是commons的StopWatch?这几种方式需要我们手动嵌入代码,容易遗漏、费力还费时。

等等,就不一一举例了。

arthas可以为我们解决上述问题,帮助程序员尽早下班,尽早交代。


常用命令


dashboard  ——当前系统的实时数据面板
thread  ——查看当前 JVM 的线程堆栈信息
jvm ——查看当前 JVM 的信息
sysprop  ——查看和修改JVM的系统属性
sysenv  ——查看JVM的环境变量
getstatic——查看类的静态属性
thread -n 5 ——打印前五名最消耗CPU的线程,可以及时找到CPU过高的代码位置
stack  <类全包名> <函数名> --- 查看某个函数的调用堆栈
trace <类全包名> <函数名>  ---查看某个函数的哪个子调用最慢,耗时最久的调用会标红显示,可以方便找出某个功能中最耗时的操作
monitor <类全包名> <函数名>  ----- 监控某个函数的调用统计数据,包括总调用次数,平均运行时间,成功率等信息
[Arthas官方文档:](https://arthas.aliyun.com/doc/quick-start.html)


安装&启动


下载: wget https://alibaba.github.io/arthas/arthas-boot.jar

启动: java -jar arthas-boot.jar


[INFO] arthas-boot version: 3.0.5.2
[INFO] Process 6020 already using port 3658
[INFO] Process 6020 already using port 8563
[INFO] Found existing java process, please choose one and hit RETURN.
*[1]: 6020 org.apache.catalina.startup.Bootstrap
[2]: 16420 org.apache.catalina.startup.Bootstrap
[3]: 7833 org.apache.catalina.startup.Bootstrap
[4]: 19036 org.apache.catalina.startup.Bootstrap
出现上述命令提示,是因为在这个服务器上,存在4个正在运行的java程序,而序号之后的数字就是pid,我们选取对应的pid,然后回车即可。
[INFO] arthas home: /root/.arthas/lib/3.1.4/arthas
[INFO] The target process already listen port 3658, skip attach.
[INFO] arthas-client connect 127.0.0.1 3658
  ,---.  ,------. ,--------.,--.  ,--.  ,---.   ,---.                           
 /  O  \ |  .--. ''--.  .--'|  '--'  | /  O  \ '   .-'                          
|  .-.  ||  '--'.'   |  |   |  .--.  ||  .-.  |`.  `-.                          
|  | |  ||  |\  \    |  |   |  |  |  ||  | |  |.-'    |                         
`--' `--'`--' '--'   `--'   `--'  `--'`--' `--'`-----'                          
wiki      https://alibaba.github.io/arthas                                      
tutorials https://alibaba.github.io/arthas/arthas-tutorials                    
version   3.1.4                                                                 
pid       6020                                                                  
time      2019-10-14 17:56:41                                                   
[arthas@6020]$ 
启动成功!




相关文章
|
Arthas Java 测试技术
Arthas使用指南(下)
相关命令 仅以主要的几个命令作为展示,具体命令及参数可以参阅官方文档。
524 0
Arthas使用指南(下)
|
Arthas Cloud Native Dubbo
Arthas watch 命令使用指南
Arthas 是我很喜欢的一款 Java 领域的开发调试工具。每次测试遇到问题的时候,当别人为了加一条日志而重发代码,我都会欣慰地拿出我的 Arthas 并且告诉他们:少年,你不用再为了加日志就重发代码而烦恼了。Arthas,你值得拥有。
Arthas watch 命令使用指南
|
6月前
|
Arthas 监控 Java
Java 诊断利器 Arthas使用
Java 诊断利器 Arthas使用
213 0
|
6月前
|
Arthas 监控 Java
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
838 2
|
Arthas 监控 Java
开源Java诊断工具Arthas:开篇之watch实战
还在为排查Java程序线上问题头痛吗,看我们用阿里开源的诊断神器 Arthas 来帮您
542 1
|
Arthas Dubbo Java
Alibaba Java诊断工具Arthas查看Dubbo动态代理类
Alibaba Java诊断工具Arthas查看Dubbo动态代理类
111 0
|
5月前
|
Arthas 测试技术 Java
一文带你快速了解 Java 线上问题快速诊断神器 Arthas
【6月更文挑战第1天】一文带你快速了解 Java 线上问题快速诊断神器 Arthas
289 3
|
6月前
|
Arthas Java 测试技术
Java诊断利器Arthas安装和使用
Java诊断利器Arthas安装和使用
75 0
|
Arthas 监控 Java
【Java虚拟机】JVM诊断神器Arthas入门实操
【Java虚拟机】JVM诊断神器Arthas入门实操
【Java虚拟机】JVM诊断神器Arthas入门实操
|
Arthas 监控 IDE
Arthas(Java 应用诊断利器)
Arthas(Java 应用诊断利器)
Arthas(Java 应用诊断利器)