使用Java visualVM监控远程JVM的流程分析

 更新时间:2021年05月26日 16:31:47   作者:eyesfree  
我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少,JDK1.6开始自带的VisualVM就是不错的监控工具,本文给大家分享使用Java visualVM监控远程JVM的问题,感兴趣的朋友跟随小编一起看看吧

VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用、JVM堆内存消耗、线程、类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很有帮助。

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=false 
                        -Djava.net.preferlPv4Stack=true 
                        -Djava.rmi.server.hostname=10.110.3.62"

  其中9004,是远程主机的端口,10.110.3.62是远程主机的ip地址。

2 监控远程java程序

  对于被监控的java程序,需要修改启动的参数,修改配置如下:

nohup java -Dcom.sun.management.jmxremote 
           -Dcom.sun.management.jmxremote.port=9004 
           -Dcom.sun.management.jmxremote.authenticate=false 
           -Dcom.sun.management.jmxremote.ssl=false 
           -Djava.net.preferlPv4Stack=true 
           -Djava.rmi.server.hostname=10.110.3.62            -jar hello.jar &

3 Java VisualVM界面配置

  ctrl + r 快捷键,运行 "jvisualvm"进入Java VisualVM界面,点击远程添加远程主机,输入远程主机的ip地址。

  右键点击添加的远程主机,添加JMX连接,输出对应的端口号,点击确定就进入了远程JVM监控界面。具体操作如下图:

以上就是使用Java visualVM监控远程JVM的流程分析的详细内容,更多关于visualVM远程监控JVM的资料请关注脚本之家其它相关文章!

相关文章

  • logback的isDebugEnabled日志配置级别源码解析

    logback的isDebugEnabled日志配置级别源码解析

    这篇文章主要为大家介绍了logback的isDebugEnabled日志配置级别源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 解决spring 处理request.getInputStream()输入流只能读取一次问题

    解决spring 处理request.getInputStream()输入流只能读取一次问题

    这篇文章主要介绍了解决spring 处理request.getInputStream()输入流只能读取一次问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • SpringMVC中处理Http请求的原理详解

    SpringMVC中处理Http请求的原理详解

    这篇文章主要介绍了SpringMVC中处理Http请求的原理详解,当一个http请求过来了首先经过的是DispatcherServlet这么一个前端控制器并调用了这个前端控制器的doService方法,这个方法最终我们发现它调用了doDispatcher这么一个方法,需要的朋友可以参考下
    2023-12-12
  • Java快速掌握Vector类方法

    Java快速掌握Vector类方法

    Vector 类实现了一个动态数组。和 ArrayList 很相似,但是两者是不同的:Vector 是同步访问的;Vector 包含了许多传统的方法,这些方法不属于集合框架
    2022-03-03
  • Java编程思想对象的容纳实例详解

    Java编程思想对象的容纳实例详解

    这篇文章主要介绍了Java编程思想对象的容纳实例详解,内容比较详细,涵盖的东西也比较多,具有参考价值,需要的朋友了解下。
    2017-09-09
  • Mybatis中 mapper-locations和@MapperScan的作用

    Mybatis中 mapper-locations和@MapperScan的作用

    这篇文章主要介绍了Mybatis中 mapper-locations和@MapperScan的作用,mybatis.mapper-locations在SpringBoot配置文件中使用,作用是扫描Mapper接口对应的XML文件,需要的朋友可以参考下
    2023-05-05
  • SpringBoot中连接多个RabbitMQ的方法详解

    SpringBoot中连接多个RabbitMQ的方法详解

    这篇文章主要介绍了SpringBoot中连接多个RabbitMQ的方法详解,要实现 SpringBoot 连接多个 RabbitMQ,只能自定义重写一些东西,分别配置才可以,下面一起来走一下试试,需要的朋友可以参考下
    2023-10-10
  • Spring @Value 设置默认值的实现

    Spring @Value 设置默认值的实现

    这篇文章主要介绍了Spring @Value 设置默认值的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java多线程连续打印abc实现方法详解

    Java多线程连续打印abc实现方法详解

    这篇文章主要介绍了Java多线程连续打印abc实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 一文带你解读Java序列化和反序列化机制

    一文带你解读Java序列化和反序列化机制

    序列化是将对象转换成二进制字节流的过程;反序列化是从二进制字节流中恢复对象的过程。本文将大家详细讲讲二者的原理与实现,希望对大家有所帮助
    2023-01-01

最新评论