Java 之GC常用命令

1、查看java进程:使用该命令可以详细的查出对应的java进程详细信息

## ps -ef|grep java

2、使用jps命令,可以列出本机所有java进程的pid

3、jstat -gcutil pid 5000 ,以5秒的维度输出对应java进成的GC情况


    

参数说明如下:
    S0: 新生代中Survivor space 0区已使用空间的百分比
    S1: 新生代中Survivor space 1区已使用空间的百分比
    E: 新生代已使用空间的百分比
    O: 老年代已使用空间的百分比
    P: 永久带已使用空间的百分比
    YGC: 从应用程序启动到当前,发生Yang GC 的次数
    YGCT: 从应用程序启动到当前,Yang GC所用的时间【单位秒】
    FGC: 从应用程序启动到当前,发生Full GC的次数
    FGCT: 从应用程序启动到当前,Full GC所用的时间
    GCT: 从应用程序启动到当前,用于垃圾回收的总时间【单位秒】

结果说明

标志
说明
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
最大持有次数限制

4、主动触发FullGC:

## jmap -histo:live pid

5、获取jvm配置详细信息命令:

## jinfo pid

6、堆栈使用情况:

## jmap -F -heap pid

7、对应进程对象占用较多的取30个:jmap -histo:live 524660 | head -30 

8、使用jstack分析线程状态,可以按照如下步骤命令:

    (1)可以通过top命令查看各个进程的cpu使用情况,默认按cpu使用率排序
    (2)找到占用cpu较高的pid
    (3)可以查看该进程下各个线程的cpu使用情况:top -Hp pid
    (4)输出对应pid十六进制:printf "%x
" pid
    (5)查看该线程堆栈:jstack -l 310962 | grep pid的十六进制数据 -A20
    (6)也可以使用如下命令查看详细信息:jstack -l 310962 | more

9、jmap输出dump文件,用来对应分析详细信息

##   jmap -dump:live,format=b,file=heap4.hprof pid

10、可能会用到的查看当前文件夹容量的命令:du   -sh    *   

原文地址:https://www.cnblogs.com/NGU-PX/p/14261488.html