前篇文章已经介绍了一些JDK 中自带的监控工具,但是这些工具都是基于文本界面的,无法很直观的看出程序运行的波动情况,这节就介绍一些图形化的监控工具供大家更简单容易的监控使用。
首先说几个官方开发的图形监控工具:
1.jvmstat
jvmstat是图形版的jstat,由Java 官方提供,目前最新版本为3.0。
下载地址:http://www.oracle.com/technetwork/java/jvmstat-142257.html
下载之后解压缩得到以下目录结构:
目录结构比较清晰,很容易就能分辨出各目录的功能及作用:
bat:windows启动程序
bin:linux启动程序
docs:相关文档
etc:linux相关依赖库
jars:相关jar包
使用jvmstat 之前需要配置相应环境变量,环境变量配置如下:
JVMSTAT_HOME:jvmstat安装目录 JVMSTAT_JAVA_HOME:JDK所在目录,与JAVA_HOME值相同
配置好两个环境变量之后就可以运行jvmstat 了,运行命令为:
visualgc pid #windows 系统进入bat 目录后运行该命令 #linux 系统进入bin 目录后运行该命令
运行后界面自动打开并显示相应内容,如图所示:
从jvmstat 中可以清晰的观察到汇编,加载,垃圾回收消耗的时间与各区域内存使用情况,在图中s0与s1的内存使用永远都是相斥的,即至多只有一个会在使用。所以jvmstat 只能作为一款基本的图形监控工具。
评论:jvmstat 作为一款基本的JVM 图形化监控工具,优点就是简单易用,我们可以非常直观的观察堆内存的使用情况,当然仅仅为堆内存,所以jvmstat 具有一定的局限性。
2.JConsole
JConsole 是一个基于JMX 的图形监控工具,用于连接正在运行的JVM,与前面提到的jvmstat 类似的图形监控程序,可以以图表化的形式显示各种数据,并可通过远程连接监视远程的服务器VM 情况,此类工具可以较直观观察各种变化,但比较耗费资源。
在JDK 1.5之后JConsole 已经成为JDK 自带监控工具,只需要在命令行状态下输入:
jconsole
即可开启监控界面,界面如下:
选择本地监控还是远程监控。
进入监控界面后,会有一些基本选项可以选择,例如内存,线程,类等。
选择内存选项后会显示堆与非堆内存等使用情况。
概述选项:监控JVM和一些监控变量的信息。
内存选项:内存使用信息
线程选项:线程使用信息
类选项:类调用信息
VM摘要:JVM的信息
MBean选项:所有MBean 的信息MBean 展示了所有以一般形式注册到JVM 上的MBean 。MBean 允许你获取所有的平台信息,包括那些不能从其他标签页获取到的信息。注意,其他标签页上的一些信息也在MBean 这里显示。另外,你可以使用 MBean 标签管理你自己的应用的MBean。
评论:与jvmstat 相比jconsole 就要强大的多了,从jconsole 中可以不光光监控到内存情况,还可以监控例如:线程,类,JVM参数等等高级信息。jconsole 还可以根据内存等使用情况手动执行GC 清理,这给我们的程序监控与良好运行带来了很大的便利。值得注意的是jconsole可以同时监控多个JVM 进程,在jconsole 中可以轻松的切换监控界面。
3.Java VisualVM
JDK1.6 中Java 引入了一个新的可视化的JVM 监控工具:Java VisualVM。
VisualVM 官方网站:http://visualvm.java.net/
VisualVM 提供在Java 虚拟机上运行的Java 应用程序的详细信息。在VisualVM 的图形用户界面中可以方便、快捷地查看多个Java 应用程序的相关信息。
运行VisualVM 非常简单,只需在命令行状态下输入:
jvisualvm
VisualVM 便会自动启动,之后可以看到如下界面:
通过起始页的提示进入相应的学习文档页面,里面有丰富的教程及讲解,并且都是中文的!
"本地"列表下列出在本机运行的Java 程序的资源占用情况,如果本地有Java程序在运行的话启动VisualVM 即可看到相应的程序名,点击程序名打开相应的资源监控菜单,以图形的形式列出程序所占用的CPU、Heap、PermGen、类、线程的 统计信息,如图所示:
概述选项
监控选项
线程选项
"远程"列表下列出远程主机上的Java 程序的资源占用情况,但需要在远程主机上运行jstatd 守护程序
更多的应用及用法可以参照官方文档:
http://visualvm.java.net/zh_CN/gettingstarted.html?Java_VisualVM
评论:VisualVM 较JConsole 又强大了不少,其中又增加了许多功能与信息,通过VisualVM 可以更加直观的观察各种内容的详细信息。
4.YourKit Java Profiler
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。
下载界面如下:
下载并安装:
安装完成后一次运行会提示授权本软件,对于个人用户其实可以免费使用YourKit Java Profiler,只需在下载页面下方填写相应授权信息即可获得授权码,如图所示:
授权后运行会显示欢迎页面,如下所示:
在欢迎页面可以选择监控运行中的JVM 进程,安装eclipse 插件,使用教程等等内容。
勾选"Show all running JVMs"会在下拉列表中显示所有JVM 进程,选择其中之一点击即可进入监控界面:
上图即为CPU 相关信息的监控界面,从此界面可以观察CPU 的使用情况等信息。
还可以打开内存管理界面,查看JVM 中各种内存的占有情况:
当然YourKit Java Profiler 的功能绝不仅仅于此,我们还可以参照YourKit Java Profiler 管文档学习更加高级的监控功能使用,官方教程地址:http://www.yourkit.com/docs/index.jsp
评论:YourKit Java Profiler 可以说异常的强大,你能想到的YourKit Java Profiler 基本都实现了,所以如此之强悍的工具已经不需要我多说什么,甚至你还可以购买它的付费版本,相信绝对会让小伙伴们惊呆的。本节也只是抛砖引玉的作用,更多更高级的特性需要大家在实践中自我摸索。
图形化的监控工具可以使我们在程序运行期间更直观的查看当前程序的运行情况,从而做出相应判断,监控程序可以让工作更加便利,但构建一个稳定高效的系统却是不断追求的终极目标。
相关推荐
### JVM内存监控工具详解 #### 引言 Java Virtual Machine (JVM) 是运行 Java 应用程序的核心组件,其性能直接影响应用的响应速度和稳定性。JVM 的内存管理是性能优化的关键,尤其是在高并发环境下,合理的内存...
jconsole是一款基于JMX(Java Management Extensions)的图形化监控工具,它可以实时监控Java应用程序的性能和资源使用情况。jconsole显示了内存使用、堆大小、线程状态、类加载情况等关键指标,对于监控应用程序的...
1. **JConsole**:这是Java SDK自带的一个图形化监控工具,可以查看JVM的内存使用情况、线程状态、类加载情况等。 2. **VisualVM**:功能更为强大的多合一JVM分析工具,提供CPU和内存分析、线程快照、方法Profiling...
### JVM监控工具使用入门 #### 引言 Java虚拟机(JVM)是运行Java程序的基础环境,其性能直接影响到应用程序的稳定性和响应速度。为了更好地理解和优化JVM的运行状态,开发人员需要掌握一系列的监控工具和技术。...
jconsole是一个图形化的JVM监控工具,基于JMX(Java Management Extensions),提供了丰富的监控功能,如内存使用情况、线程状态、类装载状态等。 **主要特点:** - 实时监控内存使用情况。 - 查看线程的状态。 - ...
它提供了丰富的图形界面,用户可以通过直观的视图来查看JVM的各种指标。此外,VisualVM还支持插件扩展,可以进一步增强其功能。 2. **安装与启动VisualVM** 在Java Development Kit(JDK)安装目录下,通常可以在`...
【Java JVM内存监控工具详解】 Java JVM内存监控是优化Java应用程序性能的关键环节,而VisualVM作为一款集成多种JDK命令行工具的可视化平台,提供了强大的分析功能。它包含的工具如jps、jstat、jmap、jinfo、jstack...
例如,它提供了各种图表,如对象生存周期图、内存池状态图和CPU热点图,帮助开发者以图形化方式理解JVM的运行状况。 总结来说,Idea插件JProfiler11是Java开发者的得力助手,它将复杂的JVM内存管理和性能优化变得...
Java虚拟机(JVM)监控工具对于理解和优化Java应用程序的性能至关重要。这些工具可以帮助开发者诊断内存泄漏、监控垃圾收集(GC)活动、查看线程状态以及检查JVM配置。以下是几种常用的JVM监控工具的详细介绍: 1. ...
VisualVM是一款强大的JVM(Java Virtual Machine)监控和性能分析工具,由Oracle公司开发并提供。它集成在Java SDK中,默认位于%JAVA_HOME%\bin目录下,方便开发者直接使用。这款工具提供了丰富的功能,帮助Java...
其次,`jconsole`是一个图形化的JVM监视工具,它可以提供内存使用情况、线程信息、类加载情况等实时数据。开发者可以通过jconsole连接到本地或远程的Java进程,直观地看到各种性能指标,并进行诊断。此外,jconsole...
JVM监控工具介绍 JVM监控工具是Java开发者和运维人员不可或缺的工具,通过这些工具可以监控和诊断Java应用程序的性能和资源使用情况。本文将介绍五种JVM监控工具:jstack、jconsole、jinfo、jmap和jdb。 jstack ...
jconsole是一个基于Java Management Extensions(JMX)的实时图形化监测工具,这个工具利用了内建到JVM里面的JMX指令来提供实时的性能和资源的监控,包括了Java程序的内存使用、Heap size、线程的状态、类的分配状态...
- `jconsole`和`VisualVM`提供图形化的JVM监控,包括内存、线程、类加载等信息。 - `jcmd`是JDK自带的命令行工具,可以获取各种JVM信息,包括内存和线程快照。 通过熟练使用`vmmap`以及结合其他JVM监控工具,...
1. **JConsole**: JConsole是Java自带的一个图形化JVM监控工具,它可以显示关于Java应用程序的内存、线程、类装载、垃圾收集以及MBean等信息。通过JMX(Java Management Extensions)接口与JVM通信,提供实时的性能...
jvisualvm是一个功能强大的Java监控和故障排查工具,它能够提供图形界面来执行JVM的各项监控和调优操作。文档中给出了配置JMX端口的示例,这为远程监控和管理提供了可能: 1. java -Dcom.sun.management.jmxremote....
`jconsole` 是基于Java Management Extensions (JMX) 的实时图形化监控工具,它能够展示JVM的实时性能数据和资源使用情况。通过`jconsole`,用户可以监控Java应用的内存使用、Heap大小、线程状态、类加载状态等信息...
- **功能**:`jconsole` 是一个图形化的监控工具,可以监控本地或远程JVM的性能。 - **特点**: - 内存使用情况。 - GC详情。 - 类装载。 - 线程活动。 ##### 9. MemoryAnalyzerTool(MAT)Eclipse插件 - **...
总的来说,JConsole和VisualVM都是强大的JVM监控工具,它们提供了丰富的功能来协助开发者进行性能优化。JConsole简洁易用,适合日常的基本监控;而VisualVM则更为全面,尤其在插件的支持下,可以进行深入的性能分析...
简介项目介绍基于SpringBoot2.0 实现的jvm远程监工图形化工具,可以同时监控多个web应用该项目是借鉴另个一开源项目JavaMonito初始版演变而来,剔除了一些功能,增加了可远程监控模块,只需要在需要监控的项目集成...