JDK命令行工具
jdk监控和故障处理工具
名称 | 主要作用 |
---|---|
jps | 显示指定系统内所有的HotSpot虚拟机进程 |
jstat | 用于收集HotSpot虚拟机各方面的运行数据 |
jinfo | 显示虚拟机配置信息 |
jmap | 生成虚拟机内存转储快照(heapdump)文件 |
jhat | 用于分析heapdump文件,它会建立一个服务器,让用户可以在浏览器上查看分析结果 |
jstack | 显示虚拟机的线程快照 |
jps:虚拟机进程状况工具
jps命令格式:
1 | jps [options][hostid] |
其中hostid为RMI注册表中注册的主机名,jps其它常用选项如下:
选项 | 作用 |
---|---|
-q | 只输出LVMID,省略主类的名称 |
-m | 输出虚拟机进程启动时传给主类main方法的参数 |
-l | 输出主类的全名,若进程执行的是jar包,输出jar路径 |
-v | 输出虚拟机进程启动时JVM参数 |
jstat:虚拟机统计信息监视工具
jstat命令格式:
1 | jstat [option vmid [interval [s|ms] [count]]] |
注:
- 若为本地虚拟机进程,VMID和LVMID是一致的,若是远程虚拟机进程,VMID格式为:
1 | [protocol:][//]lvmid[@hostname[:port]/servername] |
- interval和count表示查询间隔和次数,若不填只查询一次,如 jstat -gc 3243 250 20 表示每个250毫秒查询进程3243的垃圾收集状况,一共查询20次。
option选项以及参数请参考下表:
选项 | 作用 |
---|---|
-class | 监视类装载,卸载数量,总空间以及类装载所消耗的时间。 |
-gc | 监视java堆状况,包括堆中各个区域容量,已用空间,GC时间合计等。 |
-gccapacity | 监视内容和-gc基本相同,但主要关注各个区域使用的最大,最小空间。 |
-gcutil | 监视内容和-gc基本相同,但主要关注各个区域已使用空间占总空间的百分比。 |
-gccause | 与-gcutil一样,但会额外输出上一次gc产生的原因。 |
-gcnew | 监视新生代gc状况。 |
-gcnewcapacity | 监视内容与-gcnew基本相同,输出主要关注使用到的最大,最小空间。 |
-gcold | 监视老年代gc状况。 |
-gcoldcapacity | 监视内容与-gcold基本相似,输出主要关注使用到的最大,最小空间。 |
-gcpermcapacity | 输出永久代最大,最小空间。 |
-compiler | 输出JIT编译器编译过的方法,耗时等信息。 |
-printcompilation | 输出已经被JIT编译的方法 |
jinfo:Java配置信息工具
jinfo命令格式:
1 | jinfo [option] pid |
如查询CMSInitiatingOccupancyFraction参数值:
1 | jinfo -flag CMSInitiatingOccupancyFraction 1444 |
jmap:Java内存映射工具
jmap命令格式:
1 | jmap [option] vmid |
option参数如下表:
选项 | 作用 |
---|---|
-dump | 生成java堆转储快照,格式:-dump:[live,]format=b, file= |
-finalizerinfo | 显示在F-Queue中等待Finalizer线程执行finalize方法的对象。只在linux/solaris平台下有效。 |
-heap | 显示java堆详细信息,如使用哪种回收器、参数配置、分代状况等。只在Linux/Solaris平台下有效。 |
-histo | 显示堆中对象统计信息,包括类,实例数量、合计容量。 |
-permstat | 以ClassLoader为统计口径显示永久代内存状态。只在linux/solaris平台下有效。 |
-F | 当虚拟机进程堆-dump选项没有响应时,可使用这个选项强制生成dump快照。 |
jstack:Java堆栈跟踪工具
jstack命令格式:
1 | jstack [option] vmid |
option选项如下表:
选项 | 作用 |
---|---|
-F | 当正常输出的请求不被响应时,强制输出线程堆栈。 |
-l | 除堆栈外,显示关于锁的附加信息。 |
-m | 如果调用本地方法的话,可现实C/C++的堆栈。 |
JDK可视化工具
除了命令行工具外,还可以使用bin目录下的jconsole或者使用VisualVM等可视化工具对虚拟机进行监视。