`

【转】使用Java VisualVM监控远程JVM

阅读更多

我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualVM就是不错的监控工具.
这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到一个比较直观的界面

使用Java VisualVM监控远程JVM - liuyb_94242 - 我的空间我做主

 
从左边Applications树中可以知道,不光可以监控本地JVM运行情况, 还可以监控远程机器上的JVM运行情况.
本地监控:只要打开某个JAVA程序就会自动的加入到本地监控中.

因为本地监控无需配置, 所以这里主要介绍监控远程JVM
要进行远程监控, 本机的VisualVM就必须和远程的JVM要进行通信, Visualvm目前支持两种remote connection方式.
分别是
jstatdJMX方式: 这里我主要介绍的是通过JMX方式.

通过JMX连接远程机器, 需要经过下面的配置:
1. 修改远程机器JDK配置文件
(我这里远程机器是linux).
   a.进入JAVA_HOME\jre\lib\management\目录
   b.
拷贝jmxremote.password.template这个文件到当前目录, 并改名为jmxremote.password
    
c.打开jmxremote.password文件,去掉 # monitorRole  QED 和 # controlRole  R&D 这两行前面的注释符号

2. 修改远程机器上需要被监控的程序的配置文件 (我这里是监控Tomcat容器内部署的应用).
   a.进入TOMCAT_HOME\bin目录
     b.打开catalina.sh文件,加入如下信息:
        JAVA_OPTS
="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.0.237

                                                     -Dcom.sun.management.jmxremote.port
=18999

                                                     -Dcom.sun.management.jmxremote.ssl
=false

                                                     -Dcom.sun.management.jmxremote.authenticate=false"

   c.重启Tomcat服务.

3. 客户端VisualVM配置 (我客户端用的是WinXP).
     a.直接反键点击Remote,选择Add Remote Host...
     b.在弹出的界面中输入远程机器的IP地址(192.168.0.237),这个IP地址会加入到Remote节点下.
     c.反键点击这个IP地址,选择Add JMX Connection, 在弹出的界面中输入刚配置的端口号(18999), 这个连接会加入到该IP节点下.
     d.反键点击这个连接,选择Open.

此时就可以看到监控的界面, 从界面上我们可以看到CPU信息, 内存信息, 统计加载类数量,线程信息

 

转自:http://blog.163.com/liuyb_94242/blog/static/42167646201210131156174/

 

远程监控:启动RMI服务

1:新建一个jstatd.all.policy文件,在里面添加以下内容来保证jstatd服务启动的时候不报异常:

  1. grant codebase "file:${java.home}/../lib/tools.jar" {  
  2.     permission java.security.AllPermission;  
  3. }; 

2:netstat -ano | grep -i 1099 查看1099端口是否被占用了,如果被占用,则需要选择其他端口来启动jstatd服务

3:如果端口被占用,用以下方式启动jstatd服务:

  1. rmiregistry 2020 & jstatd -J-Djava.security.policy=jstatd.all.policy -p 2020 

更多jstatd的文档请参考sun公司的官方文档 这里

远程监控Jboos服务

1:修改JDK下面的jmx的配置文件:

切换至$JAVA_HOME所在目录/jre/lib/management下,

I:将jmxremote.access、jmxremote.password.template权限调整为读写:

  1. grant codebase "file:${java.home}/../lib/tools.jar" {  
  2. permission java.security.AllPermission;  
  3. }; 

II:vi jmxremote.password去掉

# monitorRole QED

# controlRole R&D

的#号

2:在Jboss的启动文件中添加以下信息:

  1. JAVA_OPTS="-Dcom.sun.management.jmxremote.port=2899 \  
  2. -Dcom.sun.management.jmxremote.ssl=false \  
  3. -Dcom.sun.management.jmxremote.authenticate=false \  
  4. -Djava.rmi.server.hostname=10.212.20.9  其他配置" 

3:检查启动情况:

netstat -a | grep -i 2899 查看端口占有情况

如果2899端口被其他程序占用,在jboss配置文件中调整端口-Dcom.sun.management.jmxremote.port=****

而后在VisualVM中就添加远程连接,选择jmx方式,就可以监控jboss的运行情况了。

 

 

分享到:
评论

相关推荐

    visualvm监控jvm及远程jvm监控方法

    - **监控远程应用**:连接成功后,远程JVM的监控功能与本地应用相同,可以进行性能监控、内存分析等操作。 5. **使用插件扩展功能** VisualVM的插件中心提供许多扩展,如JProfiler、NetBeans Profiler等,可以...

    Java VisualVM监控远程JVM(详解)

    Java VisualVM 是 JDK 1.6 及以上版本中自带的一款性能监控工具,它允许用户监控本地或远程的 Java 虚拟机(JVM)进程的运行状况。它提供了丰富的监控和分析功能,可用于对系统资源,尤其是内存的消耗进行分析。在...

    jvisualvm操作手册for linux菜鸟

    在使用VisualVM远程监控JVM之前,需要准备好测试环境。我们需要在服务器上配置jstatd守护程序,并在客户端使用VisualVM连接服务器监控Java程序。 ### 2.2 在服务器上配置 jstatd 的 security policy 文件 在服务器...

    最新版java JVM 工具 visualvm_20.zip

    6. **类和库信息**:你可以查看已加载的类、它们的大小和依赖关系,以及JVM使用的库。 7. **本地方法追踪**:对于混合编程(如Java与C/C++),VisualVM还可以追踪本地方法调用,这在排查跨语言问题时很有价值。 8....

    jvm监控工具visualVM

    VisualVM是一款强大的JVM(Java Virtual Machine)监控和性能分析工具,由Oracle公司开发并提供。它集成在Java SDK中,默认位于%JAVA_HOME%\bin目录下,方便开发者直接使用。这款工具提供了丰富的功能,帮助Java...

    idea中安装VisualVM监控jvm的图文教程

    5. 确保"Use VisualVM for remote JVM debugging"选项被勾选,这样Idea会在远程调试时使用VisualVM。 6. 点击"OK"保存配置。 三、启动项目会自动弹出界面 1. 当你启动一个带有调试配置的Java项目时,如果配置了...

    VisualVM 免费下载

    VisualVM是一个功能强大的Java虚拟机(JVM)监控、分析和故障排查工具,它提供了广泛的监控和分析功能,可帮助开发人员诊断和解决Java应用程序的性能问题。 主要功能: 1.CPU监控:显示Java进程的CPU使用率、线程...

    Java自带的性能监控工具使用简介

    VisualVM 可以远程监控 JVM,需要在远程机器上启动 jstatd 守护进程, 并在本地机器上使用 VisualVM 连接到远程机器。 使用 VisualVM 可以: * 监控 JVM 的性能,包括堆内存、线程、类加载等信息 * 进行线程 dump ...

    java 远程监控程序JSN

    2. **JConsole**: JConsole是Java SDK自带的一个可视化监控工具,它可以连接到本地或远程的JVM,显示关于内存、线程、类加载、垃圾回收等关键信息。开发者可以使用JConsole来监控JSN数据。 3. **VisualVM**: 另一个...

    visualvm中文版

    作为一款JVM监控工具,VisualVM可以帮助开发者监控Java应用程序的性能指标,如CPU使用率、内存占用、线程状态等。通过对这些数据的分析,开发者可以找出程序的瓶颈,进行性能优化,提高应用的运行效率。 VisualVM的...

    【转】Java内存泄露_JVM监控工具介绍jstack_jconsole_jinfo_jmap_jdb_jstat

    JVM(Java虚拟机)提供了多种监控工具来帮助开发者检测和解决这类问题。本篇将重点介绍几种常用的JVM监控工具,包括jstack、jconsole、jinfo、jmap以及jdb和jstat。 首先,`jstack`是一个用于打印Java线程堆栈跟踪...

    JVM性能监控方法之visualVM1

    #### 五、使用VisualVM监控远程主机 完成上述配置后,在本地计算机上启动VisualVM工具,选择“添加远程主机”选项,输入远程服务器的IP地址和之前设置的端口号,即可成功连接远程服务器并监控其上的Java应用程序。 ...

    VisualVM入门指南 使用说明 新手上路

    - **远程监控**:不仅能够监控本地应用,还能连接并监控远程服务器上的Java应用。 - **适用范围**: - 支持从JDK 1.4以上的Java应用程序。 - 在JDK 6 Update 7及以上版本中,VisualVM已经默认集成在JDK安装包中...

    VisualVm虚拟机监控工具

    启动后,VisualVM会自动发现本地的Java进程,也可以手动添加远程JVM。 总的来说,VisualVM是Java开发者必备的工具之一,它可以帮助优化代码、调试问题、理解应用程序的运行机制,从而提高软件的性能和稳定性。通过...

    jvm内存监控工具使用

    通过合理利用 VisualVM 及其集成的命令行工具,开发者能够有效地监控和分析 JVM 的内存使用情况,及时发现并解决内存泄漏、GC 效率低下等问题。掌握这些工具的使用方法,对于任何 Java 开发者而言都是必备技能。

    VisualVM-入门指南.docx

    * 监控远程 Java 应用:使用 VisualVM 还可以监控远程 Java 应用的运行情况,查看 JVM 相关信息、内存使用情况、CPU 消耗情况等。 * 查看 JVM 相关信息:使用 VisualVM 可以查看 JVM 相关信息,如堆栈信息、垃圾回收...

    可视化性能监控工具VisualVM

    2. **连接远程JVM**:如果需要监控远程Java应用,需要在目标机器上配置JDK的`jvm.options`文件,开启远程监控端口,然后在VisualVM中添加远程主机。 3. **选择分析模块**:根据需求选择合适的分析模块,例如选择...

    visualvm 中文版

    VisualVM可以连接到MBeans服务器,查看和操作MBeans,从而远程管理Java应用程序,执行配置更改或获取运行时信息。 5. **CPU和内存分析**: VisualVM可以深入到CPU使用率的详细级别,展示每个线程的执行情况,帮助...

    84_Java远程监控系统.zip

    4. **Java VisualVM**:这是Oracle JDK自带的一个强大的可视化工具,可以用来查看和分析JVM的性能数据,包括CPU使用率、内存状况、线程状态等。通过JMX,VisualVM可以远程连接到运行中的Java应用进行监控。 5. **...

    VisualVM 使用详解

    ##### 3.5 监控远程Java应用 除了本地应用外,VisualVM还可以连接到远程主机上的Java应用进行监控。要实现这一点,需要先确保远程主机上安装了JMX代理服务,并允许远程访问。配置完成后,在VisualVM的导航栏中选择...

Global site tag (gtag.js) - Google Analytics