参考: Oracle Javase8 Doc 关注Monitoring
1. jps
查询当前机器上当前用户的jvm进程的启动信息,包括pid,启动类,启动参数等相关信息
jps -lv | findstr Test jps -lv | grep Test
jps [ options ] [ hostid ]
options:
- -q
只展示JVM的进程id - -m
展示main方法的参数,如果是内置JVM - -l
展示main class的全路径名称 - -v
展示传给JVM的环境变量(启动参数) - -V
只展示进程id 以及 class 名称
2. jstat
查询JVM到的运行统计数据
3. jmap
打印堆内存详情
jmap -heap 1
jmap [ options ] pid
jmap [ options ] executable core
jmap [ options ] [ pid ] server-id@ ] remote-hostname-or-IP
options:
- no option
当没有option被用到时,jmap会打印出指定jvm进程所有共享对象的mappings,包括所有的共享对象的起始地址,大小,以及共享对象文件的全路径。和Oracle的Solaris pmap类似; - -dump:[live,] format=b, file=filename
dump整个java堆到一个hprof文件,文件名是filename;live是可选参数,如果被指定,那么只有激活(有被引用?)的对象会被dump。可以使用jat指令或者jvisualvm等其他工具来分析dump的hprof文件; - -finalizerinfo;
打印正在等待被回收的对象的信息; - -heap
打印堆空间size以及used汇总信息; - -histo[:live]
打印堆空间中每个对象的class name,数量,大小;如果指定了live参数,只有激活的对象会被打印出来; - -clstats
打印jvm堆内存中的class loader统计数据,包含名称,是否active,地址,父class loader,以及装载过的class数量和大小; - -F
如果jmap -heap 或者jmap -histo没有响应,可以使用这个option强制执行,live选项不支持此模式; - -h -help
打印帮助选项; - -J$<$flag$>$
传递flag给jmap启动的jvm;
来源:https://www.cnblogs.com/IC1101/p/11949094.html