JMC 小记

# 生成jfr收集文件后可导入JMC进行可视化问题定位 -good

打开效果试试看,主要分为以下部分:

一般信息: 

内存

代码

I/O

系统

事件

1.一般信息: 

一般信息-堆内存使用量

一般信息-cpu占用率

一般信息-jvm信息

一般信息-系统属性

一般信息-记录信息

2.内存: 内存占用(堆内+堆外)、GC原因、GC时间、对象分配[可按类、线程展示 按对象占用大小排序 & 可直接查看占用较大对象线程堆栈信息-快速定位可能存在问题的代码逻辑]、对象统计信息[展示增长最快对象]

内存概览

垃圾收集(gc原因、回收前后空间、失败原因等)

gc时间(年轻代、老年代、总收集时间、暂停时间等)

GC配置、堆配置、年轻代配置

分配(TLAB分配、TLAB外分配)

TLAB中分配-重点关注(可展示对象大小排序展示、TLAB总占用 大小&比例)

TLAB外分配(大小>2k对象 TLAB外的Eden区分配空间-重点关注-若此区域占用较大也可关注堆栈反思代码逻辑是否合理)

3.代码: 类加载、类卸载 信息 -重点关注

概览-展示 热点包 & 热点类

热点方法-重点关注

调用树-默认按照 线程堆栈 热点排序-重点关注

异常错误-重点关注-展示异常数 & 可查看异常堆栈定位异常堆栈详情-方便定位问题代码

编译-展示标准编译 & OSR编译 信息-重点关注下是否有 失败的编译

类加载 & 类卸载 统计

4.线程: 概览、热点线程、争用、等待时间、线程转储、锁定实例

概览-cpu占用率 & 活动线程数、守护线程数

热点线程-监控热点线程 选中热点线程其堆栈根可以展示出来-展开子树可查看其详细堆栈-不错

争用-若有死锁或锁等待线程在此页面可以展示,定位死锁/锁等待代码

等待时间-图中展示了线程休眠 造成 线程上下文切换 问题代码堆栈-可以做一个fix

线程转储-看着有点像 jstack 的输出

5.I/O:  文件读取/写入 、 套接字读取/写入  -定位 IO 瓶颈(文件+网络) -重点关注

概览-文件概览

套接字概览

套接字读入-按照线程/事件  查看 跟踪树

6.系统: 系统信息、 进程信息、环境变量信息 

概览

进程

环境变量

7.事件: 按照事件维度展示 系统 发生 事件-展示方式 日志、图形、堆栈、直方图

概览-列举系统发生的事件 按照 类型 展示

事件日志-定位具体线程 & 事件详情信息

你可能感兴趣的:(JMC 小记)