使用arthas 分析java 应用的一个流程总结

arthas 是阿里巴巴开源的一个java 应用分析利器,但是很多时候我们在碰到一个陌生系统需要进行
性能优化的时候会有好多不知道如何下手的问题,以下是自己的一些实践总结

整体了解系统运行以及框架的

这类还好,我们可以通过项目的代码结构,通过sc 查找相关的类然后通过trace,stack 以及watch ,jad等命令可以分析
同时thread 是一个很不错的命令,可以知道系统的线程情况,一般可以先dashboard 了解系统情况,然后thread,之后
进行trace,stack,以及watch 等操作

对于黑盒系统

优先使用火焰图(profiler),火焰图很不错,对于陌生系统是把利器,可以用来查看系统内部的运行情况(调用链)
有了调用链以及,可以找到的消耗大的方法,我们就可以结合trace 以及watch 分析了,这样就可以方便的找出
有异常的bug或者有异常的请求链路,同时结合jad 进行源码的发编译,查看可能的问题

说明

以上是一个简单的总结,以下是几个常用的命令

 
trace class method   // 查看调用链
watch class method  '{params,returnObj}' -x 5 //  查看方法的输入以及输出
thread    // 查看线程信息
profiler start // 开启火焰图
dashboard 了解系统当前的整体情况

参考资料

https://arthas.aliyun.com/doc/
https://github.com/alibaba/arthas

原文地址:https://www.cnblogs.com/rongfengliang/p/14149014.html