jps
列出正在运行的虚拟机进程,用法如下:
jps [-option] [hostid]
选项 | 作用 |
---|---|
q | 只输出LVMID,省略主类的名称 |
m | 输出main method的参数 |
l | 输出完全的包名,应用主类名,jar的完全路径名 |
v | 输出jvm参数 |
jstat
监视虚拟机运行状态信息,使用方式:
jstat -<option> <pid> [interval[s|ms]]
选项 | 作用 |
---|---|
gc | 输出每个堆区域的当前可用空间以及已用空间,GC执行的总次数,GC操作累计所花费的时间。 |
gccapactiy | 输出每个堆区域的最小空间限制(ms)/最大空间限制(mx),当前大小,每个区域之上执行GC的次数。(不输出当前已用空间以及GC执行时间)。 |
gccause | 输出-gcutil提供的信息以及最后一次执行GC的发生原因和当前所执行的GC的发生原因。 |
gcnew | 输出新生代空间的GC性能数据。 |
gcnewcapacity | 输出新生代空间的大小的统计数据。 |
gcold | 输出老年代空间的GC性能数据。 |
gcoldcapacity | 输出老年代空间的大小的统计数据。 |
gcpermcapacity | 输出持久带空间的大小的统计数据。 |
gcutil | 输出每个堆区域使用占比,以及GC执行的总次数和GC操作所花费的事件。 |
比如:
jstat -gc 28389 1s
每隔1秒输出一次JVM运行信息:
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 52416.0 52416.0 4744.9 0.0 419456.0 28180.6 2621440.0 439372.6 131072.0 33564.8 160472 1760.603 61 2.731 1763.334
列 | 说明 | jstat参数 |
---|---|---|
S0C | Survivor0空间的大小。单位KB。 | -gc -gccapacity -gcnew -gcnewcapacity |
S1C | Survivor1空间的大小。单位KB。 | -gc -gccapacity -gcnew -gcnewcapacity |
S0U | Survivor0已用空间的大小。单位KB。 | -gc -gcnew |
S1U | Survivor1已用空间的大小。单位KB。 | -gc -gcnew |
EC | Eden空间的大小。单位KB。 | -gc -gccapacity -gcnew -gcnewcapacity |
EU | Eden已用空间的大小。单位KB。 | -gc-gcnew |
OC | 老年代空间的大小。单位KB。 | -gc -gccapacity -gcold -gcoldcapacity |
OU | 老年代已用空间的大小。单位KB。 | -gc -gcold |
PC | 持久代空间的大小。单位KB。 | -gc -gccapacity -gcold -gcoldcapacity -gcpermcapacity |
PU | 持久代已用空间的大小。单位KB。 | -gc -gcold |
YGC | 新生代空间GC时间发生的次数。 | -gc -gccapacity -gcnew -gcnewcapacity -gcold -gcoldcapacity -gcpermcapacity -gcutil -gccause |
YGCT | 新生代GC处理花费的时间。 | -gc-gcnew-gcutil-gccause |
FGC | full GC发生的次数。 | -gc -gccapacity -gcnew -gcnewcapacity -gcold -gcoldcapacity -gcpermcapacity -gcutil -gccause |
FGCT | full GC操作花费的时间。 | -gc -gcold -gcoldcapacity -gcpermcapacity -gcutil -gccause |
GCT | GC操作花费的总时间。 | -gc -gcold -gcoldcapacity -gcpermcapacity -gcutil -gccause |
NGCMN | 新生代最小空间容量,单位KB。 | -gccapacity -gcnewcapacity |
NGCMX | 新生代最大空间容量,单位KB。 | -gccapacity -gcnewcapacity |
NGC | 新生代当前空间容量,单位KB。 | -gccapacity -gcnewcapacity |
OGCMN | 老年代最小空间容量,单位KB。 | -gccapacity-gcoldcapacity |
OGCMX | 老年代最大空间容量,单位KB。 | -gccapacity-gcoldcapacity |
OGC | 老年代当前空间容量制,单位KB。 | -gccapacity -gcoldcapacity |
PGCMN | 持久代最小空间容量,单位KB。 | -gccapacity -gcpermcapacity |
PGCMX | 持久代最大空间容量,单位KB。 | -gccapacity -gcpermcapacity |
PGC | 持久代当前空间容量,单位KB。 | -gccapacity -gcpermcapacity |
PC | 持久代当前空间大小,单位KB。 | -gccapacity-gcpermcapacity |
PU | 持久代当前已用空间大小,单位KB。 | -gc -gcold |
LGCC | 最后一次GC发生的原因。 | -gccause |
GCC | 当前GC发生的原因。 | -gccause |
TT | 老年化阈值。被移动到老年代之前,在新生代空存活的次数。 | -gcnew |
MTT | 最大老年化阈值。被移动到老年代之前,在新生代空存活的次数。 | -gcnew |
DSS | 幸存者区所需空间大小,单位KB。 | -gcnew |
jmap
生成堆存储快照,使用方式:
jmap [ -option ] <pid>
选项 | 作用 |
---|---|
dump | 生成堆存储快照,格式为:-dump:[live, ]format=b, file=<filename>,live说明是否只dump出存活的对象。 |
heap | 显示java堆详细信息,如使用那种回收器、参数配置、分代状况等。 |
histo | 显示堆中对象统计信息,包括类、实例数量、合计容量。 |
jstack
生成虚拟机当前时刻的线程快照,帮助定位线程出现长时间停顿的原因,用法:
jstack <pid>