Java工程师知识树 / Java基础
jstat
jstat(JVM Statistics Monitoring Tool
,虚拟机统计信息监视工具)是用于监视JVM各种运行时的状态信息的命令行工具,包括类加载、内存、垃圾收集、即时编译等运行时数据。
语法格式如下:
jstat [option vmid [interval [s | ms] [count ] ] ]
option : -gc 表示查看的是垃圾收集状况
vmid : 进程号
interval [s | ms] [count ] : 500 10 : 每500ms查看一次,共查看 10 次
jstat使用示例:
查找JVM启动的应用所属进程号
使用jstat -gc 进程号 500 10
;
**比如:**`jstat -gc 10344 500 10`
使用**jstat**查看目标进程 10344 的垃圾收集状况,每500ms查看一次,共查看 10 次
如果不加后面两个参数,则表示只查看一次
**-gc** 表示查看的是垃圾收集状况
通过jstat -gc 10344
查出结果为:
S0C S1C S0U S1U EC EU OC OU MC MU
5120.0 5120.0 0.0 4951.9 33280.0 24991.4 87552.0 160.0 18560.0 18143.9
CCSC CCSU YGC YGCT FGC FGCT GCT
2176.0 2078.7 3 0.013 0 0.000 0.013
-gc
表示查看垃圾收集状况,其中各列的含义如下(内存空间单位:KB,时间单位:秒):
- S0C :幸存者0区容量
- S1C :幸存者1区容量
- S0U :幸存者0区已使用大小
- S1U :幸存者1区已使用大小
- EC :eden区容量
- EU :eden区已使用大小
- OC :老年代容量
- OU :老年代已使用大小
- MC :元数据空间容量
- MU :元数据空间已使用大小
- CCSC :压缩类空间容量
- CCSU :压缩类空间已使用大小
- YGC :年轻代GC次数
- YGCT :年轻代GC耗时合计
- FGC :整堆GC次数
- FGCT :整堆GC耗时合计
- GCT :所有GC耗时合计
其中,CCS
是压缩类空间,用于对象指针与类指针压缩,属于MetaSpace元数据空间的一部分,通过-XX:+UseCompressedClassPointers
和-XX:+UseCompressedOops
开启,默认开启。
jconsole
jconsole
是一款对JVM的可视化监视管理工具,可以实时地监视JVM的内存、线程、类加载等信息的变化趋势。
jconsoles
是用 Java 写的 GUI 程序,用来监控 VM,并可监控远程的 VM,非常易用,而且功能非常强。命令行里打 jconsole,选则进程就可以了。
启动命令:jconsole
jps
jps(JVM Process Status Tool,虚拟机进程监控工具),这个命令可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称,以及这些进程的本地虚拟机唯一 ID。这个 ID 被称为本地虚拟机唯一 ID(local virtual Machine Identifier,简写为LVMID)。如果你在 linux 的一台服务器上使用 jps 得到的 LVMID 其实就是和 ps 命令得到的 PID 是一样的。
语法格式如下:
jps [options] [hostid]
如果不指定hostid就默认为当前主机或服务器。
options参数选项说明如下:
-q 不输出类名、Jar名和传入main方法的参数
-m 输出传入main方法的参数
-l 输出main类或Jar的全限名
-v 输出传入JVM的参数
使用(查看所有java进程)
jps -lv