一、通用jvm工具
1.jps:虚拟机进程状态
示例:jps -v | grep pid
2.jinfo:jvm参数信息工具
示例:jinfo -flags pid
3.jstat:查看虚拟机各种运算状态
示例:jstat -gcutil pid
S0:新生代中Survivor space0区已使用空间的百分比
S1:新生代中Survivor space1区已使用空间的百分比
E:新生代中已使用空间的百分比
O:老年代中已使用空间的百分比
M:元数据区已使用空间的百分比
CCS:压缩类空间利用率百分比
YGC:从应用程序启动到当前,发送Yang GC的次数
YGCT:从应用程序启动到当前,Yang GC所用的时间
FGC:从应用程序启动到当前,发送Full GC的次数
FGCT:从应用程序启动到当前,Full GC所用的时间
GCT:从应用程序启动到当前,用于垃圾回收的总时间
4.jstack:线程快照工具
示例:jstack -l pid
5.jmap:HeapDump工具
示例:
jmap -head pid 查看堆信息
jmap -dump:format=b,file=./heapDump.hprog pid 导出堆文件
6.jhat:HeapDump工具
示例:
jhat -port 8899 heapDump.hprof
http://ip:8899
二、线上OOM问题
java -Xms48m -Xmx48m -XX:+HeapDumpOnOutOfMemoryError XX:HeapDumpPath=./heapdump.hprof -jar **.jar
三、jprofiler
1.Start Center->Open Snapshiots
Head Walker,Biggest Objects
2.Start Center->Quick Attach
Telemetries,Overview
CPU views,Call Tree