JVM 图形化监控工具

时间:2022-09-05 13:29:34

1.jvmstat
        jvmstat是图形版的jstat,由Java 官方提供,目前最新版本为3.0。

下载地址:http://www.oracle.com/technetwork/java/jvmstat-142257.html

下载之后解压缩得到以下目录结构:

JVM 图形化监控工具

目录结构比较清晰,很容易就能分辨出各目录的功能及作用:
        bat:windows启动程序

bin:linux启动程序

docs:相关文档

etc:linux相关依赖库

jars:相关jar包

使用jvmstat 之前需要配置相应环境变量,环境变量配置如下:

  1. JVMSTAT_HOME:jvmstat安装目录
  2. JVMSTAT_JAVA_HOME:JDK所在目录,与JAVA_HOME值相同

配置好两个环境变量之后就可以运行jvmstat 了,运行命令为:

  1. visualgc pid
  2. #windows 系统进入bat 目录后运行该命令
  3. #linux 系统进入bin 目录后运行该命令

运行后界面自动打开并显示相应内容,如图所示:

JVM 图形化监控工具

从jvmstat 中可以清晰的观察到汇编,加载,垃圾回收消耗的时间与各区域内存使用情况,在图中s0与s1的内存使用永远都是相斥的,即至多只有一个会在使用。所以jvmstat 只能作为一款基本的图形监控工具。

评论:jvmstat 作为一款基本的JVM 图形化监控工具,优点就是简单易用,我们可以非常直观的观察堆内存的使用情况,当然仅仅为堆内存,所以jvmstat 具有一定的局限性。

2.JConsole

JConsole 是一个基于JMX 的图形监控工具,用于连接正在运行的JVM,与前面提到的jvmstat 类似的图形监控程序,可以以图表化的形式显示各种数据,并可通过远程连接监视远程的服务器VM 情况,此类工具可以较直观观察各种变化,但比较耗费资源。

在JDK 1.5之后JConsole 已经成为JDK 自带监控工具,只需要在命令行状态下输入:

  1. jconsole

即可开启监控界面,界面如下:

JVM 图形化监控工具        选择本地监控还是远程监控。

JVM 图形化监控工具        进入监控界面后,会有一些基本选项可以选择,例如内存,线程,类等。

JVM 图形化监控工具

选择内存选项后会显示堆与非堆内存等使用情况。

概述选项:监控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 非常简单,只需在命令行状态下输入:

  1. jvisualvm

VisualVM 便会自动启动,之后可以看到如下界面:

JVM 图形化监控工具
        通过起始页的提示进入相应的学习文档页面,里面有丰富的教程及讲解,并且都是中文的!

"本地"列表下列出在本机运行的Java 程序的资源占用情况,如果本地有Java程序在运行的话启动VisualVM 即可看到相应的程序名,点击程序名打开相应的资源监控菜单,以图形的形式列出程序所占用的CPU、Heap、PermGen、类、线程的 统计信息,如图所示:

JVM 图形化监控工具概述选项

JVM 图形化监控工具监控选项

JVM 图形化监控工具线程选项

"远程"列表下列出远程主机上的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。

下载界面如下:

JVM 图形化监控工具

下载并安装:
JVM 图形化监控工具 
JVM 图形化监控工具

安装完成后一次运行会提示授权本软件,对于个人用户其实可以免费使用YourKit Java Profiler,只需在下载页面下方填写相应授权信息即可获得授权码,如图所示:
JVM 图形化监控工具

授权后运行会显示欢迎页面,如下所示:
JVM 图形化监控工具
        在欢迎页面可以选择监控运行中的JVM 进程,安装eclipse 插件,使用教程等等内容。

勾选"Show all running JVMs"会在下拉列表中显示所有JVM 进程,选择其中之一点击即可进入监控界面:
JVM 图形化监控工具        上图即为CPU 相关信息的监控界面,从此界面可以观察CPU 的使用情况等信息。

还可以打开内存管理界面,查看JVM 中各种内存的占有情况:
JVM 图形化监控工具

当然YourKit Java Profiler 的功能绝不仅仅于此,我们还可以参照YourKit Java Profiler 管文档学习更加高级的监控功能使用,官方教程地址:http://www.yourkit.com/docs/index.jsp

 评论:YourKit Java Profiler 可以说异常的强大,你能想到的YourKit Java Profiler 基本都实现了,所以如此之强悍的工具已经不需要我多说什么,甚至你还可以购买它的付费版本,相信绝对会让小伙伴们惊呆的。本节也只是抛砖引玉的作用,更多更高级的特性需要大家在实践中自我摸索。

图形化的监控工具可以使我们在程序运行期间更直观的查看当前程序的运行情况,从而做出相应判断,监控程序可以让工作更加便利,但构建一个稳定高效的系统却是不断追求的终极目标。

转自:http://286.iteye.com/blog/1931574

JVM 图形化监控工具的更多相关文章

  1. JVM学习十二:JVM之性能监控工具

    前面我们学习了很多JVM相关的理论知识,那么本节将重点讲述的是工具的使用,正所谓:工欲善其事,必先利其器.因此,本节介绍常用的性能监控工具,用于性能监控和问题排查. 一.系统性能监控 系统性能工具用于 ...

  2. 在Centos中部署redis运行状态图形化监控工具 — RedisLive

    写在前面 前两天看到张善友老师的一篇文章<先定个小目标, 使用C# 开发的千万级应用>,里面给出了一张腾讯OA基础服务中redis运行情况的一张监控图,然后想到自己的项目中前不久也上了re ...

  3. redis运行状态图形化监控工具 — RedisLive

    在Centos中部署redis运行状态图形化监控工具 — RedisLive   写在前面 前两天看到张善友老师的一篇文章<先定个小目标, 使用C# 开发的千万级应用>,里面给出了一张腾讯 ...

  4. Redis 图形化监控方案 RedisLive 介绍

    作为一款开源的 Redis 图形化监控工具,RedisLive 提供对 Redis 实例的内存使用情况,接收的客户端命令,接收的请求数量以及键进行监控.RedisLive 的工作原理基于 Redis ...

  5. Redis 图形化监控方案 RedisLive

    一款开源的 Redis 图形化监控工具,界面如图所示 安装 首先安装python2 一般情况下系统自带 然后安装pip2 https://www.cnblogs.com/sea-stream/p/10 ...

  6. memcache图形化管理工具MemAdmin

    给大家介绍一款 memcache图形化管理工具: MemAdmin 下载地址: http://www.junopen.com/memadmin/ wget http://www.junopen.com ...

  7. redis的图形化工具&lpar;四&rpar;

    1. 介绍 本篇会介绍几个关于redis的图形化的监控工具和管理工具. 2. redis-stat redis-stat提供终端和web端的监控页面,它安装和使用起来很简单. 安装只需要一条指令. $ ...

  8. SQLServer文件收缩-图形化&plus;命令

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 收缩前 图形化演示: 不仅仅可以收缩日记文件,数据库文件也是可以收缩的,只不过日记收缩比 ...

  9. 常用MySQL图形化管理工具

    MySQL的管理维护工具非常多,除了系统自带的命令行管理工具之外,还有许多其他的图形化管理工具,这里我介绍几个经常使用的MySQL图形化管理工具,供大家参考. MySQL是一个非常流行的小型关系型数据 ...

随机推荐

  1. Android jar包的导出和使用

    一.工程打成JAR包. 1.       eclipse下有一工程JsnTxJar,右键工程名选择Export. 选择Java->JAR file 下图所示左边一栏只勾选src,右边一栏都不用勾 ...

  2. Insert Plain Text and Images into RichTextBox at Runtime

    Insert Plain Text and Images into RichTextBox at Runtime' https://www.codeproject.com/Articles/4544/ ...

  3. SCP命令

    \ svn 删除所有的 .svn文件 find . -name .svn -type d -exec rm -fr {} \; linux之cp/scp命令+scp命令详解   名称:cp 使用权限: ...

  4. C&num; 序列化(Serialize)与反序列化(Deserialize)ZZ

    序列化又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制.其目的是以某种存储形成使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方. .NET框架提供了两种种串行化的方式:1. ...

  5. Java的内存分配策略

    简单来说,对象内存分配主要是在堆中分配.但是分配的规则并不是固定的,取决于使用的收集器组合以及JVM内存相关参数的设定 以下介绍几条基本规则(使用的ParNew+Serial Old收集器组合): 一 ...

  6. HDU-4035 Maze (概率DP求期望)

    题目大意:在一个树形迷宫中,以房间为节点.有n间房间,每间房间存在陷阱的概率为ki,存在出口的概率为ei,如果这两种情况都不存在(概率为pi),那么只能做出选择走向下一个房间(包括可能会走向上一个房间 ...

  7. mysql大数据导出导入

    1)导出 select * from users into outfile '/tmp/users.txt';或 select * from users where sex=1 into outfil ...

  8. 用AJAX自定义日历

    需求分析 在一些购物网站中,都会有促销活动,这些活动都在日历上标注出来,如何通过Ajax让日历 通过读取数据库中的信息,正确的把促销活动标注在日历上,本文通过自定义日历来实现这 个问题. 技术难点 日 ...

  9. 基于MATLAB的人脸识别算法的研究

    基于MATLAB的人脸识别算法的研究 作者:lee神 现如今机器视觉越来越盛行,从智能交通系统的车辆识别,车牌识别到交通标牌的识别:从智能手机的人脸识别的性别识别:如今无人驾驶汽车更是应用了大量的机器 ...

  10. 2&period;Nginx日常维护技巧

    Nginx日常维护技巧 Nginx配置正确性检查 nginx提供了配置文件调试功能,可以快速定义配置文件存在的问题.执行如下命令检测配置文件的正确性: [root@localhost 桌面]# whi ...