美文网首页
VisualVM远程连接监控JVM(JMX连接)

VisualVM远程连接监控JVM(JMX连接)

作者: wesker8080 | 来源:发表于2018-11-23 14:56 被阅读0次

    VisualVM是JDK自带的一款java应用性能监测工具。它可以做到:

    • 显示虚拟机进程以及进程的配置,环境信息
    • 监视应用程序的CPU,GC,堆,方法区以及线程的信息
    • dump以及分析堆转储快照
    • 方法级的程序运行性能分析,找出调用最多,运行时间最长的方法
    • 离线程序快照:收集程序的运行时配置,纯种dump,内存dump等信息建立一个快照,可以将快照发送给开发者进行Bug反馈
    • 其他pulgins的功能支持。。。
      当我们的应用上线(一般都会布署在虚拟机上)后,有时需要对其进行性能分析,此时我们可以用本地的VisualVM远程连接虚拟机上的应用来达到查看监控JVM的目的

    开始

    我这里启动的是springboot应用,是以jar包形式启动的哦。
    先看一下当前的主机地址是否和公网地址(外网访问的地址)一致

    hostname -i
    

    如果显示的地址不一致的话,请先在/etc/hosts文件里添加一行,例如

    47.106.xxx.xxx wesker
    

    然后再执行看看生效了没有

    hostname wesker
    hostname -i
    

    加入启动参数

    java \
    #添加jmx远程支持start
    -Djava.rmi.server.hostname=47.106.xxx.xxx \
    -Dcom.sun.management.jmxremote=true \
    -Dcom.sun.management.jmxremote.port=33306\
    -Dcom.sun.management.jmxremote.authenticate=false \
    -Dcom.sun.management.jmxremote.ssl=false \
    #添加jmx远程支持end
    -jar web.jar
    

    这里没有开户登陆鉴权和ssl连接,所以authenticate=falsessl=false
    端口需要配置允许远程访问,具体配置流程可参考我的另一篇文章
    阿里云服务器(centos7) 设置mysql账号密码开放3306端口实现远程登陆

    VisualVM建立连接

    在本地(windows)jdk目录下的bin目录里,打开jvisualvm.exe,右键“远程”添加主机名

    image.png
    然后添加JMX连接
    image.png
    输入ip:port直接点击确定完成连接
    image.png
    如果提示
    无法使用 service:jmx:rmi:///jndi/rmi://xxx.xxx.xxx.xxx:33306/jmxrmi 连接到 xxx.xxx.xxx.xxx:33306
    请把防火墙关一下
    service iptables stop
    

    因为除了JMX server指定的监听端口号外,JMXserver还会监听一到两个随机端口号,如果你不想关闭防火墙可以执行以下操作:

    1. 拿到当前监听的端口
    netstat -tupln |grep 33306
    
    image.png
    1. 查看监听的随机端口
    #lsof 没有安装的话 安装一个 yum install lsof
    lsof -i|grep 2516
    
    image.png
    1. 把这几个端口配置到安全组规则去吧(很麻烦,每次都要设置,所以我直接关防火墙省事多了)

    结束

    看一下连接成功的界面吧


    image.png

    相关文章

      网友评论

          本文标题:VisualVM远程连接监控JVM(JMX连接)

          本文链接:https://www.haomeiwen.com/subject/vitjqqtx.html