Java VisualVM监控远程JVM(详解)

作者:大米饭炒鸡蛋 时间:2022-07-10 15:59:15 

我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualVM就是不错的监控工具.

这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到一个比较直观的界面

Java VisualVM监控远程JVM(详解)

从左边Applications树中可以知道,不光可以监控本地JVM运行情况, 还可以监控远程机器上的JVM运行情况.

本地监控:只要打开某个JAVA程序就会自动的加入到本地监控中.

因为本地监控无需配置, 所以这里主要介绍监控远程JVM

要进行远程监控, 本机的VisualVM就必须和远程的JVM要进行通信, Visualvm目前支持两种remote connection方式.

分别是jstatd和JMX方式: 这里我主要介绍的是通过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://www.cnblogs.com/dmfcjd/p/7723627.html

标签:Java,VisualVM,监控远程,JVM
0
投稿

猜你喜欢

  • Android仿新浪微博分页管理界面(3)

    2023-08-04 19:14:02
  • 详解Java中的实例初始化块(IIB)

    2023-06-08 08:35:46
  • MyBatis配置的应用与对比jdbc的优势

    2023-08-27 07:03:47
  • Android之使用Bundle进行IPC详解

    2023-09-27 22:44:56
  • SpringBoot整合RedisTemplate实现缓存信息监控的步骤

    2023-10-14 10:17:13
  • 深入理解java内置锁(synchronized)和显式锁(ReentrantLock)

    2023-11-19 00:10:57
  • Java实现调用外部程序的示例代码

    2023-11-10 06:43:12
  • Flutter图片与文件选择器使用实例

    2023-07-17 09:11:12
  • Spring Boot如何优化内嵌的Tomcat示例详解

    2023-11-13 17:52:53
  • Gradle:修改默认的Build配置文件名方式

    2023-11-28 20:18:01
  • 基于java构造方法Vector修改元素源码分析

    2023-11-25 10:54:56
  • C#中HttpWebRequest的用法详解

    2023-06-18 22:39:27
  • 安卓逆向半次元app逆向分析源码

    2023-07-28 14:36:05
  • java生成图片验证码示例程序

    2023-09-13 10:17:57
  • 详解Android自定义控件属性TypedArray以及attrs

    2023-06-20 05:13:41
  • Java ArrayList类的基础使用讲解

    2021-11-14 10:22:18
  • java解析json数组方式

    2023-08-10 17:22:14
  • 解决springboot启动失败的问题('hibernate.dialect' not set)

    2023-11-09 03:21:21
  • 深入理解Android Bitmap

    2023-07-29 08:52:14
  • Java实现Http工具类的封装操作示例

    2021-08-14 10:27:57
  • asp之家 软件编程 m.aspxhome.com