Performance Tuning -- 06 -- 使用JVisualVM监控远程Java进程

本文详细介绍如何使用JVisualVM工具远程监控Tomcat及普通Java进程,包括配置JMX参数、建立远程连接及监控运行状态,为Java应用的性能调优提供有效手段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:Performance Tuning – 06 – 使用JVisualVM监控远程Java进程


相关文章:


JVisualVM 除了监控本地的 Java 进程外,还可以监控远程的 Java 进程


一、使用 JMX 远程监控 Tomcat

  • 修改 catalina.sh

    • 修改 Tomcat 的启动脚本,将 JMX 的相关参数添加进 Tomcat 的启动命令中,并启动 Tomcat

      JAVA_OPTS="$JAVA_OPTS 
      -Dcom.sun.management.jmxremote 
      -Dcom.sun.management.jmxremote.port=9997 
      -Dcom.sun.management.jmxremote.authenticate=false 
      -Dcom.sun.management.jmxremote.ssl=false 
      -Djava.net.preferIPv4Stack=true 
      -Djava.rmi.server.hostname=xxxxxxxxx"
      
    • 参数说明

      参数含义
      -Dcom.sun.management.jmxremote开启 JMX
      -Dcom.sun.management.jmxremote.port指定远程连接端口
      -Dcom.sun.management.jmxremote.authenticate是否启用验证
      -Dcom.sun.management.jmxremote.ssl是否启用 ssl
      -Djava.net.preferIPv4Stack是否优先使用 IPv4
      -Djava.rmi.server.hostname指定远程连接地址
  • 连接远程 Tomcat
    在这里插入图片描述

    • 如上所示,先在远程标签中添加远程主机地址

    • 然后右击远程主机地址,点击添加 JMX 连接,输入之前设置的远程连接端口 (这里是 9997),点击确定即可

  • 查看 Tomcat 运行情况
    在这里插入图片描述

    • 如上所示,此时我们就可以将 Tomcat 当成一个本地 Java 进程来看待了,可以实时监控其内部的运行状态

二、使用 JMX 远程监控普通 Java 进程

  • 修改 jar 包的启动命令,添加 JMX 的相关参数即可,其余操作与远程监控 Tomcat 相同

    nohup java \
    -Dcom.sun.management.jmxremote \
    -Dcom.sun.management.jmxremote.port=9996 \
    -Dcom.sun.management.jmxremote.rmi.port=9996 \
    -Dcom.sun.management.jmxremote.authenticate=false \
    -Dcom.sun.management.jmxremote.ssl=false \
    -Djava.net.preferIPv4Stack=true \
    -Djava.rmi.server.hostname=xxxxxxxxx -jar xxx.jar &
    
    • 需要注意的是,相比较启动 Tomcat 时添加的 JMX 参数,启动 jar 包时需要额外添加 -Dcom.sun.management.jmxremote.rmi.port 参数,将其端口与 -Dcom.sun.management.jmxremote.port 参数设置为一致即可

    • 这是因为 JMX 在远程连接时,会随机开启一个 RMI 端口来作为连接的数据端口,如果不指定,可能会导致连接失败,我们可以使用 -Dcom.sun.management.jmxremote.rmi.port 参数来指定该端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值