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

2 篇文章 0 订阅

转载文章:原文地址

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

Jvisualvm的启动

  • windows系统配置jdk环境变量。

  • cmd输入jvisualvm直接启动 如下图


以下监控方式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

  • 右键远程分组下的远程ip点击

    添加JMX链接

    后输入上一步指定的jmx的端口号

     

  • 添加成功后即可监控应用的运行情况

     

方式二 使用服务端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上的应用

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值