jps
jps -mlv 列出当前jvm进程
jinfo
jinfo 5743 (jps的进程号) 动态的设置 | 添加 | 删除flag参数
截图的信息不完全,上面还有好多系统的参数、classpath 、balabala
jmap
jmap
jmap 打印java进程内存中对象的情况
-heap 打印堆的信息,各个内存区的用量
-histo[:live] 打印每个class的实例数目,内存占用,类全名信息,live表明正在使用
-permstat to print permanent generation statistics
-finalizerinfo 等待回收对象的信息
-dump:<dump-options> to dump java heap in hprof binary format
jmap -heap
jmap -histo
jmap -permstat $jid
jmap -finalizerinfo $jid
jstack
jstack
线程的运行情况、线程的状态
load过高的排查
1>jps -mlv 列出所有jvm进程,选择要查的那个,记下pid
2>top -H -p pid 查出哪个线程占用cpu过高,取该线程的threadid
3>threadid转成16进制tid
4>jstack tid | grep -A 100 取该线程栈信息的后100行,然后分析信息
jstat
jstat
类的加载情况、各个分带的容量使用情况、gc次数、gc时间
-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcpermcapacity
-gcutil
-printcompilation
S0C:年轻代中第一个survivor(幸存区)的容量 (字节)
S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
EC:年轻代中Eden(伊甸园)的容量 (字节)
EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)
OC:Old代的容量 (字节)
OU:Old代目前已使用空间 (字节)
PC:Perm(持久代)的容量 (字节)
PU:Perm(持久代)目前已使用空间 (字节)
YGC:从应用程序启动到采样时年轻代中gc次数
YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
FGC:从应用程序启动到采样时old代(全gc)gc次数
FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
GCT:从应用程序启动到采样时gc用的总时间(s)
NGCMN:年轻代(young)中初始化(最小)的大小 (字节)
NGCMX:年轻代(young)的最大容量 (字节)
NGC:年轻代(young)中当前的容量 (字节)
OGCMN:old代中初始化(最小)的大小 (字节)
OGCMX:old代的最大容量 (字节)
OGC:old代当前新生成的容量 (字节)
PGCMN:perm代中初始化(最小)的大小 (字节)
PGCMX:perm代的最大容量 (字节)
PGC:perm代当前新生成的容量 (字节)
S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比
S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比
E:年轻代中Eden(伊甸园)已使用的占当前容量百分比
O:old代已使用的占当前容量百分比
P:perm代已使用的占当前容量百分比
S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (字节)
S1CMX :年轻代中第二个survivor(幸存区)的最大容量 (字节)
ECMX:年轻代中Eden(伊甸园)的最大容量 (字节)
DSS:当前需要survivor(幸存区)的容量 (字节)(Eden区已满)
TT: 持有次数限制
MTT : 最大持有次数限制
jstat -gcutil $jid