【监控】JVM性能调优监控工具总结

1.jstat

常用:jstat -gcutil [pid]

解释:查看gc情况,后面可以跟隔多长时间输出一次,共输出几次,如jstat -gcutil 13987  1000  3

s0 s1 存活区 E eden区 o 老年代 p 持久带 YGC ygc次数 YGCT ygc所用时间 FGC fgc次数 FGCT fgc所用时间 GCT 总gc的时间

【监控】JVM性能调优监控工具总结

2.jmap

常用:

(1)jmap -histo [pid]【内存溢出常用】

解释:把堆内存中的方法及实例化 按大小排列输出

num 编号 #instances 实例数 #bytes 字节 class name 类名

注意:jmap -histo:live执行一次会触发fgc

【监控】JVM性能调优监控工具总结

(2)jmap -dump:live,format=b,file=heap.bin [pid]

解释:dump堆到文件,format指定输出格式,live指明是活着的对象,file指定文件名,生成dump文件,用于堆内存的分析

注意:jmap -dump执行一次会触发fgc

3.jhat

常用:jhat -j -mx500m heap.bin

与jmap搭配使用,可用来分析jmap生成的dump文件(head.bin),jhat内置一个微型的HTTP/HTML服务器,生成dump分析文件后,可以在浏览器查看

【监控】JVM性能调优监控工具总结

4.jstack

查看线程栈的情况

使用top -Hp [pid]可以获取占用cpu资源最高的线程,将pid转换成十六进制 ,可通过使用jstack [pid]|grep [nid] nid为十六进制的值,即可输出对应的线程运行情况,另 jstack生成的thread dump信息包含了jvm中所有存活的线程 

【监控】JVM性能调优监控工具总结

5.MAT

待。