一、JDK下提供的工具
1、jps (JVM Process Status)
JDK的bin目录下,用于查询LVMID(列出虚拟机进程号)
参数:
-q 只显示进程号。
-m 输出启动时传递给主类main()函数的参数。
-l 输出主类的全名,如果进程执行的jar包,则输出jar包路径。
-v 输出虚拟机启动时JVM参数
2、jstat(JVM Statistics Monitoring Tool)虚拟机统计信息监视工具
可以显示本地或者远程虚拟机进程中类的装载、内存、垃圾收集、JIT编译等运行数据。
格式:
jstat option vmid [interval [count]]复制代码
如果查询本地,vmid为jps命令中查出来的LVMID,如果远程,则vmid为
[protocol:][//]lvmid[@localhost[:port]/servername]复制代码
interval为监控的间隔时间,count为监控的次数。
常用option:
-class 监视类装载、卸载数量、总空间、类装载所消耗的时间
-gc 监控Java堆状况,各区使用量,gc次数,gc时间等信息
-gcutil 作用通-gc,显示的数据为百分比。
-gcnew 新生代GC情况
-gcold 老年代GC情况
例子:
S0、S1:Survivor区、E Edent区、O:老年区、YGC:MinorGC次数、YGCT:MinorGC的时间、FGC:Full GC次数、FGCT:Full GC的时间、GCT:GC总时间
3、jmap(Memory Map for Java)用于生成堆转储快照(heapdump、dump文件)
除生成dump文件外,还可查询finalize执行队列、Java堆信息。
-dump 生成Java堆转存储快照,格式如下
jmap -dump:format=b,file=filename 3039
复制代码
-finalizeinfo 只能linux平台下使用,显示真正等待F-Queue中等待执行finalize方法的对象。
-heap 只能linux平台下使用,显示Java堆详细信息。
附:
-XX:HeapDumpOnOutOfMemoryError参数、让虚拟机在OOM异常时自动生成dump文件
4、jstack(Stack Trace for Java)堆栈跟踪工具
用于生成虚拟机当前时刻的线程快照(threaddump、javacore文件)
jstack [option] vmid
参数:
-F 正常输出的请求不被响应时,强制输出线程堆栈。
-l 除堆栈外,显示关于锁的附加信息。
-m 如果调用本地方法的话,可以显示C/C++的堆栈。
5、jconsole Java监视与管理控制
启动命令文件为JavaHome/bin/jconsole,可用于监控内存、cpu、线程、是否死锁等。
6、VisualVM综合处理工具
启动命令文件为 JavaHome/bin/jvisualvm