通用jvm工具
-
jps:虚拟机进程状态工具
示例: jps -v | grep pid -
jinfo:jvm参数信息工具
示例:jinfo -flags pid -
jstat:查看虚拟机各种运算状态
示例:jstat -gcutil pid
S0:新生代中Survivor space 0区已使用空间的百分比
S1:新生代中Survivor space 1区已使用空间的百分比
E:新生代已使用空间的百分比
O:老年代已使用空间的百分比
M:元数据区已使用空间的百分比
CCS:压缩类空间利用率百分比
YGC:从应用程序启动到当前,发生Yang GC的次数
YGCT:从应用程序启动到当前,Yang GC所用的时间【单位秒】
FGC:从应用程序启动到当前,发生Full GC的次数
FGCT:从应用程序启动到当前,Full GC所用的时间
GCT:从应用程序启动到当前,用于垃圾回收的总时间【单位秒】
-
jstack:线程快照工具
示例:jstack -l pid -
jmap:HeapDump工具
示例:jmap -heap pid 查看堆信息
导出堆文件并用jhat查看
jmap -dump:format=b,file=./heapDump.hprof pid
(ls -al | grep heapDump.hprof查看文件)
jhat -port 8899 heapDump.hprof (浏览器访问:http://ip:8899)
线上OOM问题排查
HeapDumpOnOutOfMemoryError:内存溢出时dump
HeapDumpBeforeFullGC:实现在Full GC前dump
HeapDumpAfterFullGC:实现在Full GC后dump
HeapDumpPath:设置Dump保存的路径
java -Xms48m -Xmx48m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./heapdump.hprof -jar xxx.jar
使用jprofiler查看dump文件及call tree分析或者访问https://heaphero.io在线分析