Java诊断工具Arthas
温馨提示:
本文最后更新于 2024年07月21日,已超过 273 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
Arthas(阿尔萨斯)是一款阿里巴巴开源的Java诊断工具,它为开发和运维人员提供了强大的命令行界面,用于实时分析和诊断Java应用的运行状态。Arthas 提供了一系列实用的命令,可以帮助开发者快速定位问题,如查看类和方法的调用栈、监控JVM状态、分析线程和锁的竞争情况、查看对象引用关系等等。Arthas 的出现大大降低了Java应用的调试门槛,使得问题排查变得更加高效和直观。文档地址:https://arthas.aliyun.com/doc/
1.安装
Arthas 的安装非常简单,从GitHub地址https://github.com/alibaba/arthas/releases下载Arthas的最新版本,运行 Arthas 通常需要通过 Java Agent 的方式附加到目标 JVM 上,例如:
java -javaagent:/opt/springboot/arthas-bin/arthas-boot.jar -jar your-application.jar
或者,如果应用已经在运行,可以使用 attach
命令将Arthas附加到这个JVM上:
java -jar arthas-boot.jar
# 指定端口
java -jar arthas-boot.jar 8997 -Dteleport.server.port=8888
2.使用
dashboard命令,当前系统的实时数据面板
dashboard

thread命令,查看当前线程信息,查看线程的堆栈
# 列出前三个最耗时的线程
thread -n 3
# 统计最近 1000ms 内的线程 CPU 时间
thread -i 1000
trace命令,方法内部调用路径,并输出方法路径上的每个节点上耗时
trace com.zhuo.springbootdemo.controller.HelloController hello
watch命令,函数执行数据观测
参数 | 说明 |
-x | 指定输出结果的属性遍历深度,默认为 1,最大值是 4 |
-b | 在函数调用之前观察 |
-s | 在函数返回之后观察 |
-n | 执行次数 |
# 同时观察函数调用前和函数返回后
watch com.zhuo.springbootdemo.service.HelloService hello "{params,target,returnObj}" -x 2 -b -s -n 2
retransform命令,加载外部的.class文件,retransform jvm 已加载的类。
retransform /opt/springboot/HelloService.class
tt命令,方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测
tt -t com.zhuo.springbootdemo.service.HelloService hello
正文到此结束
- 本文标签: Java
- 本文链接: https://lanzi.cyou/article/11
- 版权声明: 本文由咖啡豆原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权