• jvm VisualVM工具的使用:使用jvisualvm监控远程tomcat jvm进程


    VisualVM,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的
    对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。
    VisualVM使用简单,几乎0配置,功能还是比较丰富的,几乎囊括了其它JDK自带命令的 所有功能。

    • 内存信息
    • 线程信息
    • Dump堆(本地进程)
    • Dump线程(本地进程)
    • 打开堆Dump。堆Dump可以用jmap来生成。
    • 打开线程Dump
    • 生成应用快照(包含内存信息、线程信息等等)
    • 性能分析。CPU分析(各个方法调用时间,检查哪些方法耗时多),内存分析(各类
      对象占用的内存,检查哪些类占用内存多)
    • ……

    启动

    在jdk的安装目录的bin目录下,找到jvisualvm.exe,双击打开即可。

    Linux下,执行$JAVA_HOME/bin/jvisualvm即可打开

    在这里插入图片描述

    查看线程信息及线程dump

    在这里插入图片描述

    监控远程的jvm进程

    VisualJVM不仅是可以监控本地jvm进程,还可以监控远程的jvm进程,需要借助于JMX技 术实现。

    什么是JMX?

    JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。

    示例:监控远程的tomcat jvm进程

    修改tomcat的如下配置文件,重启tomcat

    #在tomcat的bin目录下,修改catalina.sh,添加如下的参数
    JAVA_OPTS="‐Dcom.sun.management.jmxremote 
    ‐Dcom.sun.management.jmxremote.port=9999 
    ‐Dcom.sun.management.jmxremote.authenticate=false 
    ‐Dcom.sun.management.jmxremote.ssl=false"
    
    #这几个参数的意思是:
    #‐Dcom.sun.management.jmxremote :允许使用JMX远程管理
    #‐Dcom.sun.management.jmxremote.port=9999 :JMX远程连接端口
    #‐Dcom.sun.management.jmxremote.authenticate=false :不进行身份认证,任何用
    户都可以连接
    #‐Dcom.sun.management.jmxremote.ssl=false :不使用ssl
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    使用visualvm工具连接远程的tomcat

    在这里插入图片描述

    • 第一步:添加远程主机
    • 第二步:添加jmx连接
    • 第三步:用法同本地jvm进程
  • 相关阅读:
    CentOS 7.9 安装 epel-release
    C国演义 [第十二章]
    「C++」深度分析C++中i++与++i的区别
    图像处理领域之►边缘检测大合集◄【应该是全网仅有的了吧】
    pytorch深度学习实战lesson16
    Java相关的序列化与反序列化
    二叉树的前中后序遍历(递归与迭代)
    腾讯云数据安全中台保护方案获“首届全国商用密码应用优秀案例”
    CSV文件存储
    神经网络可视化:卷积核可视化
  • 原文地址:https://blog.csdn.net/a772304419/article/details/126679194