使用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

posted on   荣锋亮  阅读(352)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2018-12-17 Benthos metrcis 说明
2017-12-17 arangodb 安装简单试用
2013-12-17 silverlight 中javascript 代码与托管代码的互调用 以及一些思考

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示