常用且实用的指令:
①.jstat -gc vmid >>e:\\jstat.txt 打印出gc里面各种占用内存的实际容量信息,输出到E盘下的jstat.txt文本里面
②.jstat -gc -h10 -t vmid 1s
-h10,每打印10行,会打印一次抬头
-t,在每行前面加入JVM时间戳timestamp
1s,每隔一秒打印一次
③.jstat -gcutil -h10 -t vmid 1s 最实用
-gcutil,自动将实际容量转换为百分比,很容易锁定问题
jstat是jdk提供的一个监控JVM运行状态的工具,主要用来监控各个内存pool的使用状态。
使用方法:
1.先用jps列出当前运行的JVM虚拟机进程id-vmid
2.用jstat [options] vmid 进行监控
常用参数:
1.jstat -gc vmid
输出GC以及heap的信息,包括minor GC和major GC的次数和耗时,以及各个年轻代和持久代的大小和已占用大小
2.jstat -gcutil vmid
与-gc类似,只不过内存的大小改为了占用百分比
3.也可以持续监控一个JVM的运行
jstat -gc -h10 -t vmid 1s
-h10表示每输出10行,打印一次表头,无此参数时只在监控开始打印一次表头
-t表示在每行前面加入JVM时间戳timestamp
1s表示每隔1秒打印一次监控结果
应用实例:
#获取JVM进程ID
vmid=`jps | grep java | awk '{print $1}'`
#打印GC信息,每隔20行输出表头,输出时间戳,监控周期2秒,输出到jstat.log文件
nohup jstat -gc -h20 -t ${vmid} 2s > jstat.log &