arthas 简单使用
简介
Arthas
是Alibaba开源的Java诊断工具,深受开发者喜爱。- 官网地址:https://arthas.aliyun.com/
- 它可以做什么,以下功能都是直接操作线上跑着的jar包!!!
- 反编译,查看线上某个程序的某个类的代码
- 查看 某类的某方法调用入参和异常
- 查看程序所有的线程、CPU消耗top n 的线程、阻塞的线程
暂时就举这几个例子吧
实战
- 下载
ubuntu系统,shell连接到服务器,执行:
wget https://arthas.aliyun.com/arthas-boot.jar
- 运行
java -jar arthas-boot.jar
arthas-boot
是Arthas
的启动程序,它启动后,会列出所有的Java进程,用户可以选择需要诊断的目标进程
红色部分翻译下来是:发现服务器存在的Java进程如下,请选择一个并输入编号,例如输入 1 ,然后敲回车,我这里选择的是 3 ,即运行在 16474 的 guanyu-server-minapp-1.0.0-SNAPSHOT-3d76140.jar
- 操作
- 反编译
# jad 类名(带路径) jad com.muiyou.api.InvoiceApi
- 查看某类某方法调用入参和异常
# watch +类名 +方法名 + '{params,throwExp}' -x 2 # 方法名可以用 * 代指所有方法 watch com.muiyou.web.AreaController save '{params,throwExp}' -x 2
此时再访问该方法,就会打印入参,如果报错还会打印异常
- 查看线程相关
#查看所有线程 thread #查看 CPU top n 的线程 thread -n 数字 #查看5秒内 CPU top 3 的线程 thread -n 3 -i 5000 #查看阻塞线程 thread -b
- 退出 arthas
#退出 exit 或者 quit #彻底退出 stop
好了,就说这么多,有兴趣的可以访问官网自己探索别的功能~
比如 热更新代码~
播种和收获通常不在一个季节,而中间的过程叫做坚持~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构