JDK自带监控和故障处理常用工具

1.jps

 

jsp可以列出正在运行的虚拟机进程,并显示其执行主类(main函数所在的类)的名称和进程ID。

jps命令行参数可以通过下面命令查看:

[root@iZ25w1kdi5zZ ~]# jps -help
jps命令主要选项及说明:
-q 只输出进程ID的名称,省略主类的名称
-m 输出虚拟机进程启动时传递给主类main()函数的参数
-l 输出主类的命名,如果进程执行的是Jar包,则输出Jar的路径
-v 输出虚拟机进程启动时JVM参数

示例:

[root@iZ25w1kdi5zZ ~]# jps -l
4310 sun.tools.jps.Jps
22336 org.apache.catalina.startup.Bootstrap

2.jstat

jstat是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行状况。在不能使用GUI图形界面的情况下,它将是运行期定位虚拟机问题的首选工具。

jstat命令行参数可以通过下面命令查看:

[root@iZ25w1kdi5zZ ~]# jstat -help
jstat命令主要选项及说明:
-class            监视类装载、卸载数量、总空间及类装载所耗费的时间
-gc               监视Java堆状况,包括Eden区、2个survivor区、老年代、永久代等的容量、已用空间、GC时间等时间
-gccapacity       监视内容与-gc相同,输出主要关注Java堆各个区域使用的最大空间和最小空间
-gcutil           监视内容与-gc基本相同,输出主要关注已使用空间占总空间的百分比
-gccause          与-gcutil功能一样,但会额外输出导致上一次GC产生的原因
-gcnew            监视新生代GC的状况
-gcnewcapacity    监视内容与-gcnew基本相同,输出主要关注使用到的最大空间和最小空间
-gcold            监视老年代GC的状况
-gcoldcapacity    监视内容与-gcold基本相同,输出主要关注使用的最大空间和最小空间
-gcpermcapacity   输出永久代使用的最大空间和最小空间
-compiler         输出JIT编译器编译过的方法、耗时等信息
-printcompilation 输出已经被JIT编译的方法

示例:

[root@iZ25w1kdi5zZ ~]# jstat -gcutil 22336
  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
  0.00  20.31  87.14  76.26  44.72   1475    4.316     2    0.329    4.645


3.jinfo

jinfo命令的作用就是实时地查看和调整虚拟机的各项参数。jinfo可以使用-sysprops选项把虚拟机进程的System.getProperties()的内容打印出来,并且还可以通过-flag选项查询未被显示指定的参数的系统默认值,jps -v只能查看虚拟机启动时显式指定的参数列表。同时,jinfo命令还能够在运行期修改JVM参数,可以使用-flag[+|-]name或-flag name=value来修改一部分运行期可写的虚拟机参数值。

jinfo命令行参数可以通过下面命令查看:

[root@iZ25w1kdi5zZ ~]# jinfo -help
Usage:
    jinfo [option] <pid>
        (to connect to running process)
    jinfo [option] <executable <core>
        (to connect to a core file)
    jinfo [option] [server_id@]<remote server IP or hostname>
        (to connect to remote debug server)

where <option> is one of:
    -flag <name>         to print the value of the named VM flag
    -flag [+|-]<name>    to enable or disable the named VM flag
    -flag <name>=<value> to set the named VM flag to the given value
    -flags               to print VM flags
    -sysprops            to print Java system properties
    <no option>          to print both of the above
    -h | -help           to print this help message

示例:

[root@iZ25w1kdi5zZ ~]# jinfo -flag SurvivorRatio 22336
-XX:SurvivorRatio=8


4.jstack

 

5 jmap

jmap命令行参数可以通过下面命令查看:

[root@iZ25w1kdi5zZ ~]# jinfo -help

命令格式:jmap -histo <pid>

说明:查看Java进程中类实例数及占用内存

示例:

[root@iZ25w1kdi5zZ ~]# jmap -histo 27185 > a.txt
[root@iZ25w1kdi5zZ ~]# cat a.txt | head -n 10
## 输出前10行内容
num     #instances         #bytes  class name
----------------------------------------------
   1:        201731       96473896  [B
   2:        741474       51541440  [C
   3:       1148603       36755296  java.util.HashMap$Entry
   4:         21087       22643888  [I
   5:        693558       16645392  java.lang.String
   6:        262665       14709240  com.mysql.jdbc.ConnectionPropertiesImpl$BooleanConnectionProperty
   7:        396358       12683456  java.util.Hashtable$Entry

[root@iZ25w1kdi5zZ ~]# cat a.txt | tail -n 10
## 输出最后10行内容
2930:             1             16  scala.collection.mutable.HashMap$
2931:             1             16  kafka.api.ApiUtils$
2932:             1             16  sun.reflect.GeneratedMethodAccessor41
2933:             1             16  org.springframework.boot.context.FileEncodingApplicationListener
2934:             1             16  org.apache.catalina.core.StandardContext$1
2935:             1             16  java.nio.Bits$1
2936:             1             16  org.springframework.core.$Proxy46
2937:             1             16  java.util.Collections$EmptyEnumeration
2938:             1             16  scala.runtime.RichChar$
Total       6313973      395609608

命令格式:jmap -heap <pid>

说明:查看Java进程堆信息

示例:

[root@iZ25w1kdi5zZ ~]# jmap -heap 12751
Attaching to process ID 12751, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.76-b04

using thread-local object allocation.
Parallel GC with 8 thread(s)

Heap Configuration:
   MinHeapFreeRatio = 0
   MaxHeapFreeRatio = 100
   MaxHeapSize      = 6442450944 (6144.0MB)
   NewSize          = 2147483648 (2048.0MB)
   MaxNewSize       = 2147483648 (2048.0MB)
   OldSize          = 5439488 (5.1875MB)
   NewRatio         = 2
   SurvivorRatio    = 8
   PermSize         = 536870912 (512.0MB)
   MaxPermSize      = 1073741824 (1024.0MB)
   G1HeapRegionSize = 0 (0.0MB)

Heap Usage:
......

 

6.btrace

 

7.JConsole

 

8.VisualVM

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值