1,JPS:JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程
1.1,jps -q:只输出LVMID(Local Virtual Machine Identifier本地虚拟机唯一ID),省略主类的名称
1.2,jps -m:输出虚拟机进程启动时传入给主类mian()函数的参数
1.3,jps -l:输出主类的全民,如果进程执行的jar包,输出jar路径
1.4,jps -v:输出虚拟机进程启动时jvm参数
2,jstat:JVM Statistics Monitoring Tool,用于收集Hotspot虚拟机各方面的运行数据,显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。
2.1 jps -gc:监视Java堆状况,包括Eden区,两个survivor区,老年代,永久代等容量,已使用空间,GC时间合计等信息
jstat -gc 12516 1000 20:进程12516 每1000毫秒输出一次GC信息,合计输出20次
S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used)
EC、EU:Eden区容量和使用量
OC、OU:年老代容量和使用量
PC(MC)、PU(MU):永久代容量和使用量
CCSC、CCSU:压缩类空间容量和使用量
YGC、YGT:年轻代GC次数和GC耗时
FGC、FGCT:Full GC次数和Full GC耗时
GCT:GC总耗时
// -Xms20m -Xmx20M
public class GCTest {
public static void main(String[] args) throws InterruptedException {
int i = 0;
List<Integer> list = new ArrayList<Integer>();
while(true) {
Thread.sleep(10);
new OOMObject(i++);
list.add(i);
}
}
}
2.2,jstat -class:监视类装载,卸载数量,总空间以及类装载所耗费的时间
3,jinfo:Configuration Info for Java,显示虚拟机配置信息。
4,jmap:Memory Map for Java,生成虚拟机的内存转储快照(heapdump文件)
4.1,jmap -dump:生成Java堆转储快照,格式 -dump:[live,]fomate=b,file=<filename>,其中live子参数说明是否只dump出存活的对象。
4.2,jmap -heap vmid:显示Java堆详细信息,如使用哪种回收器,参数配置,分代状况等。
5,jhat:JVM Heap Dump Browser,用于分析heapdump文件,他会建立一个http/htmlfuwuqi ,让用户可以在浏览器上查看分析结果
6,jstack:Stack Trace for Java,显示虚拟机的线程快照
6.1,jstack -l vmid:除堆栈外,显示关于锁的附加信息