1、 jps
列出已装载的JVM
请参考文档。
2、 jstack
打印线程堆栈信息
请参考文档。
3、jstat
JVM监控统计信息,包括类的加载和卸载情况,新生代和老年代的容量、使用情况等信息。
-class
-compiler
-gc
-gccapacity
-gccause
-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcpermcapacity
-gcutil
-printcompilation
请参考文档。
4、jmap
打印JVM堆内对象情况
请参考文档)
-dump:[live,]format=b,file=< filename>
使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件。
-finalizerinfo
打印正等候回收的对象的信息。
-heap
打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情况。
-histo[:live]
打印每个class的实例数目、内存占用、类全名信息。VM的内部类名字开头会加上前缀“”。如果live子参数加上后,只统计活的对象数量。\n\n -clstats
打印classload的信息。包含每个classloader的名字、活泼性、地址、父classloader和加载的class数量。
-F
在pid没有响应的时候强制使用-dump或者-histo参数。在这个模式下,live子参数无效。
5、 jinfo
jinfo可以输出并修改运行时的java 进程的opts。用处比较简单,用于输出JAVA系统参数及命令行参数。请参考文档。
6、jconsole
一个java GUI监视工具,可以以图表化的形式显示各种数据。可通过远程连接监视远程的服务器VM。在cmd命令行里输入jconsole,选择进程就可以了。需要注意的就是在运行jconsole之前,必须要先设置环境变量DISPLAY,否则会报错误。
请参考文档。
7、 jvisualvm
jvisualvm同jconsole都是一个基于图形化界面的、可以查看本地及远程的JAVA GUI监控工具,Jvisualvm同jconsole的使用方式一样,直接在命令行打入Jvisualvm即可启动,不过Jvisualvm相比,界面更美观一些,数据更实时。请参考文档。
8、jhat
用于对JAVA heap进行离线分析的工具,可以对不同虚拟机中导出的heap信息文件进行分析。请参考文档。
9、jdb
用来对core文件和正在运行的Java进程进行实时地调试,里面包含了丰富的命令帮助您进行调试,它的功能和Sun studio里面所带的dbx非常相似,但jdb是专门用来针对Java应用程序的。现在应该说日常的开发中很少用到JDB了,因为现在的IDE已经帮我们封装好了,如使用ECLIPSE调用程序就是非常方便的,只要在非常特定的情况下可能会用到这个命令,如远程服务器的维护,没有IDE进行调试,那这个时候JDB应该可以帮上忙。请参考文档。
10、jstatd
jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。
请参考文档。