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总耗时