jvm性能监控工具

jvm可能存在的问题:
    OutOfMemoryError:内存不足
    内存泄露
    线程死锁
    锁竞争(Lock Contention)
    Java消耗过多的CPU

一、jps(java virtual machine process status tool)
监控jvm进程转台信息
jps [options] [hostid]
    -m:输出传入main方法的参数
    -l:显示main类或jar文件的完全限定名称
    -v:显示为jvm虚拟机制定的参数

二、jstack:查看某个java进程内的线程堆栈信息
jstack [option] pid
    -l long listings:输出完整的锁信息
    -m 混合模式,即会输出java堆栈及C/C++堆栈信息

三、jmap和jhat
    jmap:jvm memory map 查看堆内存使用情况
    jhat:java heap analysis tool
    jmap [options] pid
        -heap:详细退内存空间使用状态信息
        -histo[:live]查看堆内存中的对象数目、大小统计结果

四、jstat:jvm统计监测工具
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
其中<option>为必须提供的选项,所有可用选项可使用jstat -options列出:
-class
-compiler
-gc
-gccapacity
-gccause
-gcmetacapacity
-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcutil
-printcompilation
字段意义(gc):
SOC,S1C,S0U,S1U:C表示容量,U表示已用量
EC,EU:eden区域的容量和已用量
OC,OU
PC,PU
YGC,YGT:新生代的GC次数和耗时
FGC,FGCT:FULL GC的次数和耗时
GCT:GC总耗时

原文地址:https://www.cnblogs.com/fansik/p/6676647.html