jps命令---查看JVM进程状况
格式为:jps [options] [hostid]
功能描述: jps是用于查看有权访问的hotspot虚拟机的进程. 当未指定hostid时,默认查看本机jvm进程,否者查看指定的hostid机器上的jvm进程,此时hostid所指机器必须开启jstatd服务。 jps可以列出jvm进程lvmid,主类类名,main函数参数, jvm参数,jar名称等信息。
主要用法有:
jps -m 输出主函数传入的参数. 下的hello 就是在执行程序时从命令行输入的参数
jps -l 输出应用程序主类完整package名称或jar完整名称.
jps -v 输出通过.hotsportrc或-XX:Flags=<filename>指定的jvm参数
jstat命令---查看虚拟机统计信息监控工具
可以显示本地或远程虚拟机中的类加载、内存、垃圾收集、JIT编译等运行数据
格式为: jstat [options] [vmid] [interval[s|ms][count]]
参数options表示操作类型,vmid表示进程ID,interval和count表示查询间隔和次数,如查询进程1010的垃圾收集情况,没5秒钟收集一次,一共收集20次,则命令如下
jstat -gc 1010 5000 20
option主要有
-gc 监控jvm堆状况,包括eden区、2个survivor区,老年代等容量,已用空间,gc时间合计等信息
-gcutil 监控内容和-gc一样,输出的内容格式是使用空间占总空间的百分比
-gccause 与-gcutil功能一样,但是会额外输出导致上一次gc产生的原因
-gcnew 监视新生代gc的状况
-gcold 监视老年代gc的状况
S0:堆空间survivor 0 已使用空间百分比
S1:堆空间survivor 1 已使用空间百分比
E:堆空间Eden空间已使用的空间百分比
O:堆空间Old空间已使用的空间百分比
M:metaspace空间使用率
CCS:压缩类空间使用率
YGC:从应用程序启动到采样时Young GC的次数
YGCT:从应用程序启动到采样时Young GC的总时间
FGC:从应用程序启动到采样时Full GC的次数
FGCT:从应用程序启动到采样时Full GC的总时间
GCT:从应用程序启动到采样时用于垃圾回收的总时间
jmap命令---查看jvm内存映像工具
用于生产堆转储快照的dump文件,主要格式为:jmap [option] vmid
vmid是jvm进程ID,可通过jps查看
option是操作类型,主要有
-dump 生产jvm堆转储快照
-heap 显示jvm堆详细信息,如使用什么垃圾收集器、参数配置、分代状况
-histo 显示jvm堆中对象统计信息,包括类、实例数量和合计容量
jstack命令---jvm堆栈跟踪工具
jstack用于生产虚拟机当前时刻的线程快照,也就是当前jvm中每一条线程正在执行的方法堆栈的集合,可以定位长时间停顿的线程的原因,如线程间死锁、死循环、请求外部资源超时等