《深入理解java虚拟机》-|《深入理解java虚拟机》- 03 性能监控与故障处理工具

1、JDK的命令行工具 1.1 jps
jps 全称 JVM Process Status Tool,用于显示指定系统内所有的HotSpot虚拟机进程,并显示虚拟机执行主类(mian()所在类)名称
命令格式: jps [option] [hostid],其中hostid是RMI注册表中的注册的主机名,如果不指定hostid就默认为当前主机或服务器。其中option选项:
《深入理解java虚拟机》-|《深入理解java虚拟机》- 03 性能监控与故障处理工具
文章图片
option常用选项 1.2 jstat
jstat 全称 JVM Statistics Monitoring Tool,用于监视虚拟机各种运行状态信息,可以显示本地或远程进程中的类装载、内存、垃圾回收、JIT编译等运行数据,是运行期定位性能问题的首选工具
命令格式: jstat [option vmid [interval][s|ms] [count]],其中参数vmid表示进程ID,参数interval和count分别表示时间间隔和统计次数,如果两个都省略,只查询一次。其中option选项:
《深入理解java虚拟机》-|《深入理解java虚拟机》- 03 性能监控与故障处理工具
文章图片
option常用选项 1.3 jinfo
jinfo 全称 JVM Configuration Info用于实时查看和调整虚拟机运行参数,jps -v口令只能查看到显示指定的参数,如果想要查看未被显示指定的参数的值就要使用jinfo口令
命令格式:jinfo [option] [args] LVMID。其中option参数:-flag : 输出指定args参数的值;-flags : 不需要args参数,输出所有JVM参数的值;-sysprops : 输出系统属性,等同于System.getProperties()
1.4 jmap
jmap 全称 JVM Memory Map,用于生成heap dump文件,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候·自动生成dump文件。jmap不仅能生成dump文件,还可以查询finalize执行队列、Java堆和永久代的详细信息,如当前使用率、当前使用的是哪种收集器等
命令格式:jmap [option] LVMID,其中option选项:
《深入理解java虚拟机》-|《深入理解java虚拟机》- 03 性能监控与故障处理工具
文章图片
option选项 1.5 jstack
jstack 全称 jvm stack trace用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的
命令格式:jstack [option] LVMID
《深入理解java虚拟机》-|《深入理解java虚拟机》- 03 性能监控与故障处理工具
文章图片
option选项 【《深入理解java虚拟机》-|《深入理解java虚拟机》- 03 性能监控与故障处理工具】参考文章:http://www.hollischuang.com/archives/110

    推荐阅读