常用的JVM监控工具介绍
1. Visual Vm :Java性能分析工具,提供了可视化的监控界面。可以很方便的监控JVM的运行状态,包括 堆的各个区内存使用情况,Minor Gc和FULL gc的使用情况
官方主页:http://visualvm.java.net/
下面以eclipse运行为例子,简单看看Visual Vm的监控功能。
启动VisualVm,再启动Eclipse.就可以在VisualVm上看到Eclipse的线程。
可以看到多个TAB页
其中
Overview中可以看到eclipse启动时配置的参数
JVM arguments的参数和eclipse.ini中配置的启动参数是一致的
可以看到,我的eclipes配置
堆大小最小是40mb,最大是384mb.
老年代最大的空间是256mb
Monitor页中
可以监控堆内存的使用状况,可以看到堆内存的扩容是动态的
其中还自带了执行GC的功能以及DUMP GC日志的功能
如果我们希望看到eclipse启动时的GC情况,我们可以下一个扩展插件。在TOOL->Available-Plugins->Visual GC 点击Install,可以下载并安装
安装完以后,会多出一个TAB,Visual GC.可以看到GC的具体情况咯
从上图中可以看到,
堆内存被分成了
一个Eden:23.625mb 新生代
两个Surviver:2.938*2mb 新生代
一个Old Gen:354.500mb 老年代
Eclipse启动至今
Eden Space即新生代做了877次GC 即Minor Gc 耗时3.48秒
OLD GEN 即老年代做了20次GC 即FULL GC 耗时为6.985秒。
加载类21394个 18.553秒
Compile Time: 3.7秒。JIT编译哦。热点代码编译
2. jdk自带虚拟机性能监控与故障处理工具,工具位于jdk_home/bin目录下
jps:JVM Process Status Tool:显示指定系统内所有的HotSpost虚拟机进程
jstat: 用于收集HotSpot虚拟机各方面的运行数据
jinfo:显示虚拟机配置信息
jmap:生成虚拟机的内存转储快照
jhat:用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果
jstack:显示虚拟机的线程快照