VisualVM是什么
VisualVM 是一款免费的性能分析工具,主要用于监控和调优Java虚拟机(JVM)的性能。它提供了丰富的监控和分析功能,帮助开发人员诊断和解决Java应用程序的性能问题。
VisualVM的下载
官网下载地址
不过从JDK 1.6版本开始自带程序,在你安装JDK的bin目录下,我的如下图所示:

VisualVM的简单介绍
首页:

当我本地运行项目时会生成一条监控信息如下图:


为了更好的观察JVM的GC情况,我们可以在工具栏下找到Visual GC的插件并进行下载:

Visual GC视图:

JMX方式连接远程服务器(项目采用的war包形式部署)
编辑tomcat的catalina.sh文件,文件在tomcat的bin目录下,在catalina.sh文件中加入下列内容:
JAVA_OPTS="$JAVA_OPTS
-Djava.protocol.handler.pkgs=org.apache.catalina.webresources
-Djava.rmi.server.hostname=xx.xx.xx.xx【服务器IP地址】
-Dcom.sun.management.jmxremote.port=18999【端口号】
-Dcom.sun.management.jmxremote.rmi.port=39089【端口号】
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

参数解释:
-Djava.protocol.handler.pkgs=org.apache.catalina.webresources:
这个参数指定了用于处理URL协议的包名列表。在这个例子中,它告诉JVM使用Apache Tomcat的org.apache.catalina.webresources包中的协议处理器来处理特定的URL协议。这通常用于Tomcat等Web服务器,以处理资源请求。
-Djava.rmi.server.hostname=xx.xx.xx.xx【要连接的目标服务器地址】:
这个参数设置了RMI(Remote Method Invocation,远程方法调用)服务器的主机名或IP地址。RMI是Java的一种分布式对象协议,允许一个Java虚拟机调用另一个Java虚拟机上的对象方法。这里将其设置为xx.xx.xx.xx,意味着JMX客户端可以通过这个IP地址来连接JMX服务。
-Dcom.sun.management.jmxremote.port=18999【自己设置】:
这个参数设置了JMX远程监控的通信端口。JMX客户端将通过这个端口与JVM进行通信,以获取监控和管理信息。
-Dcom.sun.management.jmxremote.rmi.port=39089【自己设置,可以不设置,但是不设置的话每次重启之后都会分配一个随机端口,需要频繁开放端口很麻烦】:
这个参数设置了RMI注册表监听的端口。RMI注册表用于注册和查找RMI对象,JMX客户端通过RMI与JVM进行通信时,需要先通过RMI注册表找到JMX连接的RMI对象。
-Dcom.sun.management.jmxremote.ssl=false【生产环境不建议这么设置】:
这个参数指定了JMX远程通信是否使用SSL(Secure Sockets Layer,安全套接层)加密。这里设置为false,意味着JMX通信不加密,可能会面临安全风险。
-Dcom.sun.management.jmxremote.authenticate=false【生产环境不建议这么设置】:
这个参数指定了JMX远程通信是否需要进行身份验证。这里设置为false,意味着JMX客户端不需要提供用户名和密码就可以连接到JMX服务,同样可能带来安全风险。
如果开了防火墙,需要开放上面设置的两个端口,或者关闭防火墙。
云服务器要记得去控制台开放对应端口

VisualVM连接


输入上面设置的ip或主机与端口,端口号为Dcom.sun.management.jmxremote.port参数对应的
例如192.168.1.222:18999,其他的都可以不填,确定之后如果正常的话就可以看到效果了。


8940

被折叠的 条评论
为什么被折叠?



