visualvm 监控 远程 机器上的 Java 程序

JDK里面本身就带了很多的监控工具,如JConsole等。

  我们今天要讲的这款工具visualvm,就是其中的一款。但是这款工具是在JDK1.6.07及以上才有的。它能够对JAVA程序的JVM堆、线程、类加载情况、JVM GC情况进行监控,是一个很好的免费的监控工具。

监控范围:JDK1.4及以上版本的程序都能够监控。

它在JDK里面叫做: jvisualvm,当然我们可以到它的官方网站上去下载它的最新版本,当前最新版本是:

1.3.2,如下所示:

在图中已经列出了它的官方网站地址:

http://visualvm.java.net

首先,打开visualvm,它会自动检索到本地机器上java应用程序,如下图:

  双击它就可对它开始进行各项数据的监控了。

  但是监控远程机器上的Java应用程序就没有这么简单了,需要进行相应的配置,

首先我们来看下visualvm监控远程机器上Java应用程序的原理:

由上图可知,visualvm必须通过jstatd服务来取得远程机器上Java应用程序的运行数据。

所以我们得先在要监控的机器上启动jstatd服务(这个服务是在远程机器上启动的)

1、首先在远程机器上配置好Java环境:

    JAVA_HOME,CLASSPATH,PATH

配置完之后,在cmd里面通过:java  -version和javac  -version,确定Java环境配置完成

2、 创建一个文件:jstatd.all.policy(名字可以变,扩展名不可以变),内容如下:

grant codebase "file:${java.home}/../lib/tools.jar" {

       permission java.security.AllPermission;

};

这个文件的作用是让jstatd服务能够读取机器上的java应用程序的运行数据

3、把这个文件放到:%JAVA_HOME%\bin目录下。

4、打开cmd,把目录切到:%JAVA_HOME%\bin目录下,然后执行如下命令:

jstatd -J-Djava.security.policy=jstatd.all.policy

这个时候,如果cmd是如下所示的状态,则说明jstatd服务启动成功

注:上面启动的jstatd服务,默认端口是1099,也可以在上面命令中指定端口号

按照上面的原理图,在远程机子上启动jstatd服务之后,visualvm就可以监控到远程机器上的JAVA应用程序了,按下面操作即可:

1、在本地visualvm界面上添加远程主机:

在左边“应用程序”中,右击“远程”,选择“添加远程主机”

然后在弹出的对话框里面输入所要监控的远程主机的IP,如下所示:

  刚开始进入时,不是这个对话框,点击“高级设置”就会展开余下的部分,就是上面所示的对话框,在里面可以设置远程机器上jstatd服务所用的端口号,默认是1099,可以通过勾选“显示名称”,在里面输入自己想要的远程主机名,最后点击确定即可。

2、展开刚所新建的远程主机,就可看到运行在远程机器上的JAVA应用程序了,如下所示:

通过双击里面的应用程序,就可以像本地应用程序一样,对它进行监控了。

到此,visualvm远程监控部分算是完成了。

最后需要注意的一点是,jdk6上的visualvm不能够监控到jdk7上的java应用程序,即使jstatd服务成功启动也不行。

来自: http://hanwangkun.iteye.com/blog/1195526

时间: 2024-11-08 17:27:50

visualvm 监控 远程 机器上的 Java 程序的相关文章

转:visualvm监控远程机器上的Java程序

转自:http://hanwangkun.iteye.com/blog/1195526 JDK里面本身就带了很多的监控工具,如JConsole等.我们今天要讲的这款工具visualvm,就是其中的一款.但是这款工具是在JDK1.6.07及以上才有的.它能够对JAVA程序的JVM堆.线程.类加载情况.JVM GC情况进行监控,是一个很好的免费的监控工具. 监控范围:JDK1.4及以上版本的程序都能够监控. 它在JDK里面叫做: jvisualvm,当然我们可以到它的官方网站上去下载它的最新版本,当

visualvm监控远程机器上的Java程序

源文:http://hanwangkun.iteye.com/blog/1195526

使用Java VisualVM监控远程JVM cpu jps

我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualVM就是不错的监控工具.这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到一个比较直观的界面 从左边Applications树中可以知道,不光可以监控本地JVM运行情况, 还可以监控远程机器上的JVM运行情况.本地监控:只要打开某个JAVA程序就会自动的

如何使用JVisualVM远程监控和优化Tomcat和Java程序的内存和CPU

如何使用VisualVM远程监控和优化Tomcat和Java程序的内存和CPU JVisualVM 是Java 继 JConsole 之后有一款力作,是集成了诸多分析和优化Java程序的工具的工具. 我们可以用它来为优化Java程序的内存占用,找出内存泄漏,分析Java程序的CPU占用情况,根据JVisualVM获取到的数据优化JVM配置等.   总之是相当好了~~~~ JVisualVM 位于JAVA_HOME/bin目录下 . 直接运行可打开. 打开后界面如下: 由于JVisualVM 本身

使用Java visualVM监控远程JVM

1 监控远程tomcat 对于被监控的tomcat,需要修改tomcat的bin目录下的Catalina.sh配置文件,增加如下配置. JAVA_ OPTS="$JAVA_ OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9004 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=f

JVM探秘:VisualVM监控远程Java进程

VisualVM在Java 8中是JDK自带的一个图形化工具,项目主页 VisualVM,在后续版本中可能会从JDK移除. VisualVM可以监控Java进程的CPU与内存占用情况,可以监控Java进程内的各个线程的执行情况,还可以与MAT工具一样用来分析堆转储快照. 监控远程Tomcat进程 监控远程主机上的Tomcat进程,需要在Tomcat的catalina.sh文件中加入参数: JAVA_OPTS="$JAVA_OPTS -Dcom.sum.management.jmxremote -

使用jdk自带的visualVM监控远程监控was

1.登录was控制台https://172.16.87.221:9043/ibm/console/unsecureLogon.jsp 服务器--服务器类型--Java 和进程管理---进程定义---Java 虚拟机 通用JVM参数:-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote 2.修改/opt/IBM/WebSphere/AppServer/java/jre/lib/management/management

使用VisualVM监控远程服务器JVM

VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用.JVM堆内存消耗.线程.类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很有帮助.在windows中安装JDK后,VisualVM位于%JAVA_HOME%/bin/下,直接执行jvisualvm.exe即可,一个主要运行界面如图: VisualVM会自动检测本机运行中的JVM并建立连接,本文主要介绍连接远程Linux服务器的配置方法,测试环境为CentOS 6.5,JD

JMX——以可视化形式管理与监控正在运行中的Java程序

简单理解: MBean:管理的最小单元,一个MBean就是一个可以被监控的JavaBean. MBeanServer:一个池子,各个MBean都会注册到该池子中,并且该池子提供一系列的管理.监控API. MBeanAgent:负责将MBean注册到MBeanServer中,并且定义JMXServiceURL和JMXConnectorServer,使得我们可以使用该url,通过web.RMI.Jconsole等各种形式进行远程监控和管理Java程序. 具体实现参考: https://blog.cs