JVM 状态查询命令整合
jcmd
jcmd -l
参数-l表示列出所有java虚拟机
jcmd 5476 help
列出该虚拟机所有支持的命令
jcmd 5476 Thread.print
打印线程栈信息,可以用来查看JVM中当时的线程信息。(下面是部分截图)
jcmd 5476 GC.heap_dump path
导出堆信息GC.heap_dump
jps
jps -l
查看系统所有真在运行的java进程
jstat
jstat命令的基本使用语法如下
jstat -option [-t] [-h] pid [interval] [count]
选项option可以由以下值构成。
- -class:显示ClassLoader的相关信息。
- -compiler:显示JIT编译的相关信息。
- -gc:显示与gc相关的堆信息。
- -gccapacity:显示各个代的容量及使用情况。
- -gccause:显示垃圾回收的相关信息(同-gcutil),同时显示最后一次或当前正在发生的垃圾回收的诱因。
- -gcnew:显示新生代信息。
- -gcnewcapacity:显示新生代大小与使用情况。
- -gcold:显示老生代和永久代的信息。
- -gcoldcapacity:显示老年代的大小。
- -gcpermcapacity:显示永久代的大小。
- -gcutil:显示垃圾收集信息。
- -printcompilation:输出JIT编译的方法信息。
- -t参数可以在输出信息前面加上一个Timestamp列,显示程序运行的时间。
- -h参数可以在周期性的数据输出时,输出多少行数据后,跟着输出一个表头信息。
- interval参数用于指定输出统计数据的周期,单位为毫秒(ms)。
- count参数用于指定一共输出多少次数据。
jstat -gc 7068 1000 20
- S0C:s0(from)的大小(KB)
- S1C:s1(from)的大小(KB)
- S0U:s0(from)已使用的空间(KB)
- S1U:s1(from)已经使用的空间(KB)
- EC:eden区的大小(KB)
- EU:eden区已经使用的空间(KB)
- OC:老年代大小(KB)
- OU:老年代已经使用的空间(KB)
- PC:永久区大小(KB)
- PU:永久区已经使用的空间(KB)
- YGC:新生代gc次数
- YGCT:新生代gc耗时
- FGC:Full gc次数
- FGCT:Full gc耗时
- GCT:gc总耗时
jstat -class 7068 1000 2
获取JVM中类的加载情况