版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37490221/article/details/81953475
JVisualVM综述
JDK发布的功能最强大的运行监视和故障处理工具,他可以做到:
- 显示虚拟机进程以及进程的配置、环境信息
- 监视应用程序的CPU、GC、堆、方法区以及线程的信息
- dump以及分析堆转储快照
- 方法级的程序运行性能分析,找出被调用最多、运行时间最长的方法
- 离线程序快照:收集程序的运行时配置、线程dump、内存dump等信息建立一个快照、可以将快照发送开发者处进行BUG反馈
- …
JVisualVM监控Tomcat
1.本地Tomcat
打开JVisualVm 既可以开始监控
2.远程Tomcat
2.1配置服务器端Tomcat的JMX
博主是Linux系统下的远程Tomcat,在Tomcat的bin目录下的catalina.sh添加以下内容
JAVA_OPTS="-Djava.rmi.server.hostname=192.168.214.150\
-Dcom.sun.management.jmxremote.port=11111\
-Dcom.sun.management.jmxremote.rmi.port=11111\
-Dcom.sun.management.jmxremote.ssl=false\
-Dcom.sun.management.jmxremote.authenticate=false"
注意:JAVA_OPTS配置在第一次出现JAVA_OPTS的位置之前即可,当然,是在流程控制语句之外
参数 | 含义 |
---|---|
-Djava.rmi.server.hostname | rmi服务器所在主机名,这里配置为tomcat所在服务器ip即可 |
-Dcom.sun.management.jmxremote.port | jmx端口 |
-Dcom.sun.management.jmxremote.rmi.port | rmi端口,配置同jmx端口一致 |
-Dcom.sun.management.jmxremote.ssl | 是否进行证书认证,http和https的区别,这里设置成false |
-Dcom.sun.management.jmxremote.authenticate | 是否进行用户名密码认证,这里配置成false是为了方便,线上环境必须配置用户认证 |
2.2客户端启动JVisualVM工具
前提是客户端已经安装JDK
zaomianaodeMBP2:~ zaomianbao$ jvisualvm
会弹出一下窗口
2.3添加远程主机
右键”远程”–>”添加远程主机”–>在”主机名”处输入Tomcat所在服务器IP地址–>点击”确认”
2.4添加JMX连接
右键刚刚创建的远程主机,选择”添加JMX连接”
输入连接:192.168.214.150:11111;勾选”不要求SSL连接”,点击确认
点击创建成功的JMX连接
到此处JVisualVM连接远程Tomcat成功
JVisualVM窗口概述
可以看到顶栏处有4个菜单,分别为:概述、监视、线程、抽样器
Tables | Are |
---|---|
概述 | 包括JVM参数和系统相关属性等基本信息 |
监视 | 展示了CPU、堆、类装载、线程的活动情况 |
线程 | 展示所有的线程及各自的状态:运行、休眠、等待、驻留、监视 |
抽样器 | 细致的内存和CPU的实时监控 |
监视
线程
抽样器
总结
到此,就实现了客户端对服务器端Tomcat容器的远程监控,下一篇将结合压力测试工具和JVisualVM来观察调节Tomcat的运行,进一步深入Java虚拟机层面的性能调优。虽然Java虚拟机是分布式架构以外的知识,但是了解和掌握JVM运行原理和性能调优是一个健壮的WEB服务的前提。