一、JDK 自带工具查看 JVM 情况
命令? ? ? | 作用 | jps | JVM 进程状态指令,列出系统的JVM进程,显现出PID | jinfo | JVM信息查看工具,配置信息,jinfo pid | jvisualvm | 图形界面,查看jvm基本情况 | jconsole | jmx兼容工具,监控JVM基本情况? | jstat | JVM统计监控工具 | jstack | 栈信息指令 | jcmd | JVM调试工具 | jmap | JVM堆内存分析指令,打印进程对象 |
相关链接文档:
https://docs.oracle.com/javase/8/docs/technotes/tools/
二、使用 Arthas(阿尔萨斯)线上调试debug
1. Arthas 是什么?
- ?这个类从哪个jar包加载的?为什么会报各种类相关的Exception?
- 我修改的代码为啥没有执行到? 难道我没commit? 分支是否搞错了?
- 遇到问题无法在线上debug,难道我只能加日志重新发布?
- 线上遇到某个用户的数据处理有问题,但线上同样无法debug,线下无法重现!
- 是否有一个全局视角来查看系统的运行状况?
- 有什么办法可以监控到JVM的实时运行状态?
- 快速定位应用的热点,生成火焰图?
2. 一键安装并启动Arthas
a: Cloud Toolkit 实现远程诊断
推荐使用 IDEA 插件下载 Cloud Toolkit 来使用 Arthas:Alibaba Cloud Toolkit - IntelliJ IDEs Plugin | Marketplace
b: 直接下载
?https://github.com/alibaba/arthas
3. Arthas 的watch 命令
? ? watch 让你能方便地观察到指定方法的调用情况。范围: 返回值,抛出异常,入参(还能观察执行函数的对象本身)通过 ognl 表达式进行对应变量的查看
watch?[-b] [-e] [-x ] [-f] [-h] [-n ] [-E] [-M ] [-s] class-pattern method-pattern express [condition-express]
具体的官方使用说明文档:?进阶使用 — Arthas 3.5.6 文档
|