1. jps
java process status tool, 最常用的工具之一。列出正在运行的虚拟机进程,显示虚拟机进程执行主类名称及本地虚拟机唯一ID(LVMID,local virtual machine identifier)。对于本地虚拟机来说,LVMID与操作系统进程ID(PID,process identifier)一致。
jps还可以通过RMI协议查看开启了RMI服务的远程虚拟机进程状态;
jps -v
2. jstat
jvm statistics monitoring tool,是用于监视虚拟机各种运行状态的命令行工具。可以显示本地或者远程虚拟机进程中的类加载、内存、垃圾回收、及时编译等运行时数据。在没有gui环境的服务器上,是运行期定位虚拟机性能问题的常用工具。
jstat [option vmid interval count]
3. jinfo
configuration info for Java,配置信息查看工具。
jinfo option vmid
jinfo -sysprops 1323,打印虚拟机进程的System.getProperties()系统变量;
4. jmap
memory map for java,内存影响工具,主要用于生成堆转储快照,还可以查询堆和方法区的详细信息,如空间使用率等。
jmap option vmid
5. jhat
java heap analysis tool, 虚拟机对转出快照分析工具,搭配jmap使用。内置一个微型HTTP/WEB服务器,分析后可以使用浏览器查看。不过一般不会使用该工具,一是因为直接在服务器上分析会占用很多资源,影响生产服务器稳定,二是该工具功能远不如Visual VM、Eclipse Memory Analyzer、IBM Heap Analyzer强大。
6. jstack
stack trace for java,Java堆栈跟踪工具,用于生成虚拟机当前时刻的线程快照,一般称为ThreadDump。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的目的通常是定位出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间挂起等,都是导致线程长时间停顿的原因。线程出现停顿时通过jstack查看各个线程的调用堆栈,就可以获知没有响应的线程到底在后台做些什么事情,或者等待着什么资源。
jstack option vmid