使用 Arthas 排查线上问题
💡
原文中文,约17800字,阅读约需43分钟。
📝
内容提要
本文介绍了使用Arthas的tt和ognl命令获取Spring Bean内容,以及使用jad/sc/retransform命令进行热更新代码。Arthas还有其他灵活的使用场景,但在生产环境中热更新代码需要严格控制。
🎯
关键要点
- Arthas 是阿里开源的 Java 应用诊断工具,支持在线排查问题和动态跟踪 Java 代码。
- 可以通过 tt 和 ognl 命令获取 Spring Bean 内容,使用 jad/sc/retransform 命令进行热更新代码。
- 在联网环境下,可以通过 wget 命令下载并运行 Arthas。
- 使用 help 命令可以查看 Arthas 支持的所有子命令,命令分为与 JVM 相关、类加载、统计和观测等几类。
- Arthas 提供了与 JVM 相关的命令,如 jvm、sysenv、sysprop、memory 等,用于查看和修改 JVM 属性。
- 类加载、类、方法相关的命令包括 classloader、dump、jad、mc、redefine 和 retransform 等。
- 统计和观测命令可以对类方法的执行情况进行监控,帮助排查线上问题。
- Arthas 命令与 JDK 工具的功能类似,但在输出格式和功能上进行了优化。
- Arthas 提供了一些类 Linux 命令,方便在终端中使用。
- 使用 watch 命令可以监听方法的入参和返回值,帮助定位异常。
- tt 命令可以记录方法调用的所有现场信息,方便回溯和重放。
- logger 命令可以动态更新日志级别,适用于没有开启 Actuator 功能的 Java 程序。
- 使用 ognl 命令可以查看系统属性和应用配置,帮助排查配置问题。
- 热更新代码的步骤包括使用 jad 反编译、修改代码、使用 mc 编译和使用 retransform 进行热更新。
- 热更新有一定限制,不能修改类的字段和方法,且在生产环境中需严格控制。
🏷️
标签
➡️