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 *