之前有总结过JVM监控和调优的工具JVM 监控工具和调优工具 不过这些都是命令行和设置JVM参数的方式,现在来总结归纳下一些图形化的工具
JConsole
JConsole 是一个基于JMX 的图形监控工具,用于连接正在运行的JVM,可以以图表化的形式显示各种数据,并可通过远程连接监视远程的服务器VM 情况,此类工具可以较直观观察各种变化,但比较耗费资源。
在JDK 1.5之后JConsole 已经成为JDK 自带监控工具,只需要在命令行状态下输入:
jconsole
就可以开启监控界面
可以选择远程监控或者本地监控
- 概述选项:监控JVM和一些监控变量的信息。
- 内存选项:内存使用信息
- 线程选项:线程使用信息
- 类选项:类调用信息
- VM摘要:JVM的信息
- MBean选项:所有MBean 的信息MBean 展示了所有以一般形式注册到JVM 上的MBean 。MBean 允许你获取所有的平台信息,包括那些不能从其他标签页获取到的信息。注意,其他标签页上的一些信息也在MBean 这里显示。另外,你可以使用 MBean 标签管理你自己的应用的MBean。
从jconsole 中可以不光光监控到内存情况,还可以监控例如:线程,类,JVM参数等等高级信息。jconsole 还可以根据内存等使用情况手动执行GC 清理,这给我们的程序监控与良好运行带来了很大的便利。值得注意的是jconsole可以同时监控多个JVM 进程,在jconsole 中可以轻松的切换监控界面。
JvisualVm
JDK1.6 中Java 引入了一个新的可视化的JVM 监控工具:Java VisualVM。
运行VisualVM 非常简单,只需在命令行状态下输入:
jvisualvm
“本地”列表下列出在本机运行的Java 程序的资源占用情况,如果本地有Java程序在运行的话启动VisualVM 即可看到相应的程序名,点击程序名打开相应的资源监控菜单,以图形的形式列出程序所占用的CPU、Heap、PermGen、类、线程的 统计信息
Jvmstat
图形版的jstat 需要去官网下载安装包
使用jvmstat 之前需要配置相应环境变量,环境变量配置如下:
JVMSTAT_HOME:jvmstat安装目录
JVMSTAT_JAVA_HOME:JDK所在目录,与JAVA_HOME值相同
配置好两个环境变量之后就可以运行jvmstat 了,运行命令为:
visualgc pid
#windows 系统进入bat 目录后运行该命令
#linux 系统进入bin 目录后运行该命令
从jvmstat 中可以清晰的观察到汇编,加载,垃圾回收消耗的时间与各区域内存使用情况,在图中s0与s1的内存使用永远都是相斥的,即至多只有一个会在使用。所以jvmstat 只能作为一款基本的图形监控工具。
jvmstat 作为一款基本的JVM 图形化监控工具,优点就是简单易用,我们可以非常直观的观察堆内存的使用情况,当然仅仅为堆内存,所以jvmstat 具有一定的局限性。
YourKit
YourKit 是一个用于分析Java 与.NET 应用程序的智能工具,YourKit Java Profiler 已经被IT 专业人士与分析师公认为最好的分析工具。通过YourKit 技术解决方案可以以非常高的的专业水平分析出CPU 与内存使用情况。
YourKit Java Profiler 还获得了Java Developer’s Journal(Java 开发者杂志)的编辑选择奖,其功能的强大可见一斑。
YourKit 网站官方:http://www.yourkit.com
YourKit Java Profiler 下载地址:http://www.yourkit.com/download/index.jsp
YourKit Java Profiler 提供了Java 与.NET 两种语言的支持,并且支持基本所有操作系统,目前最新版本为12.0.6。
打开之后的界面如下
监控界面
还可以打开内存管理界面,查看JVM 中各种内存的占有情况: