jdk内置java命令 -java环境监控
参考: 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资源和性能消耗情况,用于分析性能问题,尤其涉及到垃圾回收堆大小
jstat -gc 1
jstat [ options ] pid
- -class
展示classloader的行为数据 - -compiler
展示JIT编译器的行为数据 - -gc
展示堆垃圾回收的行为数据 - -gccapacity
展示不同代的堆大小以及他们实际占用空间 - -gccause
展示最近一次gc行为的数据 - -gcnew
展示新生代的行为数据 - -gcold
展示老年代的行为数据 - -gcnewcapacity
展示新生代的内存占用情况 - -gcoldcapacity
展示老年代的内存占用情况 - -gcmetacapacity
展示metaspace的内存占用情况 - -gcutil
展示垃圾回收的汇总信息
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;
posted on 2019-12-12 19:59 mindSucker 阅读(291) 评论(0) 编辑 收藏 举报