前言:
JVM性能分析常用的命令,包括jstack(查看jvm线程运行状态)、jps(显示本地的java进程及对应进程号)、jstat(监视VM内存工具)、jinfo(输出并修改运行时的java进程的opts)、jmap(查看堆内存使用状况)、jconsole(java GUI监视工具)、jvisualvm(JVM运行监控工具)
注意:在使用这些工具前,先用JPS命令获取当前的每个JVM进程号[pid],然后选择要查看的JVM
jstack
功能
查看jvm线程运行状态,是否有死锁现象等等信息.
常用命令
1 | jstack pid :thread dump //查看对应进程的jstack的相关语法 |
jps
功能
与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号.
常用命令
1 | 用法命令行(cmd)里打 jps就行了 |
jstat
功能
jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数.
常用命令
1 | //单个参数 |
jinfo
功能
可以输出并修改运行时的java进程的运行参数(opts).
常用命令
1 | jinfo -opt pid //用法示例(opt表示对应参数,如下示例) |
jmap
功能
jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本.
常用命令
1 | jmap -dump:format=b,file=E:\luxiong.bin pid //file-保存路径及文件名 pid-进程编号 |
jconsole
功能
用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强.
常用命令
1 | 用法命令行(cmd)里打 jconsole,选则相应的进程就行了 |
jvisualvm
功能
用来监控JVM的运行情况,可以用它来查看和浏览Heap、Dump、ThreadDump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。该工具位于JDK根目录的bin文件夹下面,无需安装,正常装完jdk吼直接在bin目录下运行jvisual.exe即可.
常用命令
1 | 用法命令行(cmd)里打 jvisualvm,选则相应的进程就可以(功能远比jconsole强大) |
解析
(1)概述:显示当前服务器(resin)的整体运行状况
(2)监视:可实时动态显示cpu、堆栈、类、线程的相关信息(类似于jconsole的升级版)
(3)线程:可实时动态的现实进程的使用状况
点击[==线程Dump==]按钮 可以显示具体的进程的内容,可从此页面查看到进程的具体信息以及报错信息(类似于jstack命令的查看结果)
(4):显示当前服务器(resin)的整体运行状况
参考文档
1.https://blog.csdn.net/u012550080/article/details/81605189
2.http://www.51testing.com/html/38/n-3724238.html
3.https://blog.51cto.com/zero01/2141942