1. 主要命令监控工具用途
名称 |
主要作用 |
jps |
JVM Process Status Tool, 显示指定系统内所有HotSpot虚拟机进程 |
jstat |
JVM Statistics Monitoring Tool,用于手机HotSpot虚拟机各方面的运行数据 |
jinfo |
Configuration Info for Java,显示虚拟机配置信息 |
jmap |
Memory Map for Java,生成虚拟机的内存转储快照(heapdump文件) |
jhat |
JVM Heap Dump Browser, 用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果 |
jstack |
Stack Trace for Java, 显示虚拟机的线程快照 |
1.1 jps 虚拟机进程状况工具
jps [options] [hostid]
选项 |
作用 |
-q |
只输出LVMID,省略主类的名称 |
-m |
输出虚拟机进程启动时传递给主类main()函数的参数 |
-l |
输出主类的全名,如果进程执行的是jar包,输出jar路径 |
-v |
输出虚拟机进程启动时JVM参数 |
1.2 jstat 虚拟机统计信息监控工具
jstat [options vmid [interval[s|ms]] [count]]
选项 |
作用 |
-class |
监视类装载、卸载数量、总空间以及类装载所耗费的时间 |
-gc |
监视Java堆状况,包括Eden区、两个survivor、老年代、永久代等的容量、已用空间、GC时间合计等信息 |
-gccapacity |
监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间内 |
-gcutil |
监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比 |
-gccause |
与-gcutil功能一样,但是会额外输出导致上一次GC产生的原因 |
-gcnew |
监视新生代GC状况 |
-gcnewcapacity |
监视内容与-gcnew基本相同,输出主要关注使用到的最大、最小空间 |
-gcold |
监视老年代GC状况 |
-gcoldcapacity |
监视内容与-gcold基本相同,输出主要关注使用到的最大、最小空间 |
-gcpermcapacity |
输出永久代使用到的最大、最小空间 |
-compiler |
输出JIT编译器编译过的方法、耗时等信息 |
-printcompilation |
输出已经被JIT编译的方法 |
1.3 jinfo Java配置信息工具
jinfo [option] pid
1.4 jmap Java内存映像工具
jmap [option] vmid
选项 |
作用 |
-dump |
生成Java堆转储快照。格式为:-dump:[live,]format=b,file=,其中live子参数说明是否只dump出存活的对象 |
-finalizerinfo |
显示在F-Queue中等待Finalizer线程执行finalize方法的对象,只在Linux/Solaris平台下有效 |
-heap |
显示Java堆详细信息,如使用哪种回收器、参数配置、分代状况等。只在Linux/Solaris平台下有效 |
-histo |
显示堆中对象统计信息,包括类、实例数量、合计容量 |
-permstat |
以ClassLoader为统计口径显示永久代内存状态。只在Linux/Solaris平台下有效 |
-F |
当虚拟机进程对-dump选项没有响应时,可使用这个选项强制生成dump快照。只在Linux/Solaris平台下有效 |
1.5 jhat 虚拟机堆转储快照分析工具
1.6 jstack Java堆栈跟踪工具
jstack [option] vmid
选项 |
作用 |
-F |
当正常输出的请求不被响应时,强制输出线程堆栈 |
-I |
除堆栈外,显示关于锁的附加信息 |
-m |
如果调用到本地方法的话,可以显示C/C++的堆栈 |
2. JDK可视化工具
2.1 JConsole Java监控与管理控制台
2.2 VisualVm 多合一故障处理工具