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

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,404评论 19 139
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 9,333评论 0 5
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 10,792评论 0 9
  • 这就是那个被爆下跪求增加排片的《百鸟朝凤》!从一开始的不屑一顾,到最后的泪眼婆娑。 唢呐,受到了当代洋乐器的冲击,...
    Zerof阅读 3,831评论 3 4
  • 嗓子疼的让我又失眠了,都怀今天中午吃的火锅太辣! 哎…想到今天中午的火锅事件。 中午我们宿舍的人在宿舍吃自制的火锅...
    mgndvpjlgy阅读 1,001评论 0 0