JDK命令行监控和故障处理工具

JDK监控和故障处理工具

名称 主要作用
jps JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。
jstat JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据
jinfo Configuration Info for Java,显示虚拟机配置信息
jmap Memory Map for Java,生成虚拟机内存转储快照(heapdump文件)
jhat JVM Heap Dump Browser,用于分析heapdump文件
jstack Stack Trace for Java,显示虚拟机线程快照

 

 

 

 

 

 

 

jps 虚拟机进程状况工具

  列出正在运行的虚拟机进程,虚拟机执行主类(main函数所在的类)名称和这些进程的本地虚拟机唯一ID(LVMID)。

jps命令格式

  jps  [ options ] [ hostid ]

options 作用
-q 只输出LVMID,省略主类的名称 
  -m     输出虚拟机进程启动时传递给主类main函数的参数
-l 输出主类全名和LVMID
-v 输出虚拟机进程启动时JVM参数

 

 

 

 

 

jstat 虚拟机统计信息监视工具

  可以显示本地或者远程虚拟机进程中的类加载、内存、垃圾收集、JIT编译等运行数据。

jstat命令格式

  jstat  [ option vmid  [ interval [ s | ms ]  [ count ] ] ]  (参数 interval和count代表查询间隔和次数)

  本地虚拟机进程的话,vmid和LVMID一致但如果是远程虚拟机进程的话,vmid的格式是

  [ protocol: ] [ // ] lvmid [ @hostname[ :port ]/servername ]

option 作用
-class 监视类装载数量、卸载数量、总空间以及类装载所耗费的时间
-gc 监视Java堆状况,包括Eden区、两个Survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息
-gccapacity 监视内容与-gc基本相同,输出主要关注Java堆各个区域使用到的最大、最小空间
-gcutil 监视内容与-gc基本相同,输出内容主要是已用空间占总空间的百分比
-gccause 与-gcutil功能一样,额外输出上一次产生GC的原因
-gcnew 监视新生代的GC状况
-gcnewcapacity 监视内容与-gcnew一样,输出主要关注使用到的最大、最小空间
-gcold 监视老生代的GC状况
-gcoldcapacity 监视内容与-gcold一样,输出主要关注使用到的最大、最小空间
-gcpermcapacity 监视永久代使用到的最大、最小空间
-compiler 输出JIT编译器编译过的方法、耗时等信息
-printcompilation 输出已经被JIT编译了的方法

 

 

 

 

 

 

 

 

 

 

 

 

jinfo jvm配置信息工具

  可以实时的查看和调整虚拟机的各项参数

jinfo命令格式

   jinfo  [ option ]  [ arg ]  vmid

D:\java\jdk1.7\bin>jinfo -flag MaxTenuringThreshold 7452
-XX:MaxTenuringThreshold=15

jmap 内存映像工具

  用于生成堆转储快照即dump文件

jmap命令格式

  jmap  [ option ]  vmid

option 作用
-dump 生成Java堆转储快照,格式为:-dump:[live, ]format=b,file=<filename>;live参数说明是否只dump出存活的对象
-finalizerinfo 显示在F-Queue中等待Finalizer线程执行finalize方法的对象,仅Linux平台有效
-heap 显示Java堆详细信息,如使用哪种回收器,参数配置,分代状况等,仅Linux平台有效
-histo 显示堆中对象统计信息,包括类,实例数量,合计容量
-permstat 以ClassLoader为统计口径显示永久代内存状况,仅Linux平台有效
-F 当虚拟机进程对-dump没有响应时,可使用该选项强制生成dump文件,仅Linux平台有效

 

 

 

 

 

 

jhat 虚拟机堆转储快照分析工具

  与jmap搭配使用,用于分析dump文件,浏览器输入http://127.0.0.1:7000即可查看

  

  

jstack 堆栈跟踪工具

  用于生成当前时刻的线程快照,线程快照是当前虚拟机内每一条线程正在执行的方法堆栈集合。其主要目的是定位线程出现长时间停顿的原因如线程死锁,死循环,请求外部资源等。

jstack命令格式

  jstack  [ option ]  vmid

option 作用
-F 无响应时,强制输出线程堆栈快照
-l 除堆栈快照外,额外显示关于锁的信息
-m 如果调用到本地方法的话,可以显示C/C++的堆栈快照

 

 

 

 

 

 

posted @ 2017-10-07 15:46  BINGJJFLY  阅读(311)  评论(0编辑  收藏  举报