介绍
阿里巴巴前段时间开源了内部使用的Java诊断工具,好评声不断。最近又强势登上了github trading版,看一下Arthas能帮我们解决哪些问题?
作用
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
- 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
- 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
- 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
- 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
- 是否有一个全局视角来查看系统的运行状况?
- 有什么办法可以监控到JVM的实时运行状态?
Arthas支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
排查线上出现的问题超级方便
可以从整体看到系统的状态,哪个线程占用CPU较多
jad
反编译class类,超级方便
sc
查找JVM中已经加载的类
Trace
查看方法的调用过程,哪些部分比较耗时
Watch
观察方法 执行的入参,仅当方法抛出异常时才输出。
Monitor
监控某个特殊方法的调用统计数据,包括总调用次数,平均rt,成功率等信息,每隔5秒输出一次。
Time Tunnel(tt)
记录方法调用信息,支持事后查看方法调用的参数,返回值,抛出的异常等信息,仿佛穿越时空隧道回到调用现场一般。
Classloader
了解当前系统中有多少类加载器,以及每个加载器加载的类数量,帮助您判断是否有类加载器泄露。
当然还有很多其他特别有意思的功能,有中文的文档,写的挺详细的,国内很多指明互联网公司都使用了这个工具