一、从机器中down下相关的堆栈信息进行分析
二、各命令及内容说明
2.1 jstat
查询GC使用情况。
将下载的文件加载到线上分析工具网站:gceasy.io
参数说明:
字段 | 说明 |
---|---|
S0 | 幸存1区当前使用比例 |
S1 | 幸存2区当前使用比例 |
E | 伊甸园区使用比例 |
O | 老年代使用比例 |
M | 元数据区使用比例 |
CCS | 压缩使用比例 |
YGC | 年轻代垃圾回收次数 |
FGC | 老年代垃圾回收次数 |
FGCT | 老年代垃圾回收消耗时间(秒) |
GCT | 垃圾回收消耗总时间(秒) |
查看是否频繁有YGC或FGC的情况
2.2 jstack
查询堆栈情况。
将下载的文件加载到线上分析工具网站:fastthread.io
主要查看Runable
状态的线程,是否有执行过长而阻塞其他线程的情况。
2.3 jmap-histo
查询对象情况。
参数说明:
字段 | 说明 |
---|---|
instances | 实例个数 |
bytes | 所占字节大小 |
class name | 类名 |
如果有业务类对象的实例个数、占用字节大小过大,可能有内存泄漏。
2.4 jmap-heap
堆内存配置情况
2.5 jmap-dump
下内存快照,分析问题,慎用,因为需要提取和下载大文件,会阻塞进程。
工具如 MNT