美文网首页
使用jvisualvm远程监控服务器上的jvm

使用jvisualvm远程监控服务器上的jvm

作者: 猿气十足 | 来源:发表于2021-02-06 13:44 被阅读0次

    在测试环境复现出了的研发自测没有发现的疑难问题如性能问题,排除服务器本身的问题之后,研发就需要定位问题。
    我们可以直接远程监控测试环境的jvm查看监控进程的运行情况么?
    我们可以直接远程dump测试环境的运行进程分析线程阻塞原因么?
    其实仅需通过jvisualvm这个jdk自带的图形化监控工具,去远程监控测试环境的jvm就可以解决上述问题。

    Jvisualvm的启动

    • windows系统配置jdk环境变量。
    • cmd输入jvisualvm直接启动 如下图


      1612573934(1).jpg

    以下监控方式springboot项目为例介绍

    方式一 启动Java项目配置jmx启动参数

    • 启动远程应用需指定jmx相关配置
    java -jar 
    -Djava.rmi.server.hostname=远程服务ip 
    -Dcom.sun.management.jmxremote.port=18888 
    -Dcom.sun.management.jmxremote=true 
    -Dcom.sun.management.jmxremote.ssl=false 
    -Dcom.sun.managementote.ssl=false 
    -Dcom.sun.management.jmxremote.authenticate=false 
    xxx.jar
    
    • 本地jvisualvm右键远程添加远程主机ip


      1612575160(1).jpg
    • 右键远程分组下的远程ip点击添加JMX链接后输入上一步指定的jmx的端口号
      1612575590(1).jpg
    • 添加成功后即可监控应用的运行情况


      1612575948(1).jpg

    方式二 使用服务端jdk的jstatd

    • 服务器上要安装jdk
    • 在jdk的安装目录bin下新建文件jstatd.all.policy输入如下内容(也可以写绝对路径)
    grant codebase "file:${java.home}/../lib/tools.jar" {  
       permission java.security.AllPermission;  
    };
    
    • 在jdk的安装目录bin执行jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=linux_ip
    • 使用jvisualvm远程监控监控方式使用

    小结

    • 方式一启动时加JVM参数,可以写到启动脚本中,作用范围是当前应用
    • 方式二是利用jdk的jstatd去监控,作用范围是启动在JVM上的应用

    有疑问留言,如果有帮到你的话,记得点赞收藏

    相关文章

      网友评论

          本文标题:使用jvisualvm远程监控服务器上的jvm

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