Java虚拟机使用jvisualvm工具远程监控tomcat内存
jdk中自带了很多工具可以用于性能分析,位于jdk的bin目录下,jvisualvm工具可以以图形化的方式更加直观的监控本地以及远程的java进程的内存占用,线程状态等信息。

一、配置tomcat
在tomcat的catalina.sh文件开头加上如下配置:
JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.184.129 -Dcom.sun.management.jmxremote.rmi.port=9999"
各参数含义:
-Dcom.sun.management.jmxremote:是否支持远程JMX访问,默认true;
-Dcom.sun.management.jmxremote.port:是JMX远程监控端口号,需要在防火墙开放该端口;
-Dcom.sun.management.jmxremote.ssl=false:表示是否对连接开启SSL加密,默认开启;
-Dcom.sun.management.jmxremote.authenticate=false :是否需要开启用户认证,默认开启,如果开启需要额外配置授权文件;
-Djava.rmi.server.hostname=192.168.184.129:远程服务器的主机名;
-Dcom.sun.management.jmxremote.rmi.port=9999:RMI端口号,JMX在远程连接时,会随机开启一个RMI端口作为连接的数据端口,可以和JMX端口号相同。
二、配置主机名
使用hostname -i命令查看主机名是否为外网访问ip192.168.184.129:
[root@localhost bin]# hostname -i127.0.0.1 127.0.0.1
发现是127.0.0.1,所以需要修改主机名为192.168.184.129。
(1)修改/etc/sysconfig/network文件
原文件内容为:
[root@localhost bin]# cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=localhost.localdomain
修改HOSTNAME为192.168.184.129,即修改后内容为:
[root@localhost bin]# cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=192.168.184.129
修改后使用service network restart命令重启网络服务。
(2)修改/etc/hosts文件
原文件内容为:
[root@localhost bin]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
修改127.0.0.1为192.168.184.129,并删除第二行ipv6的配置,即修改后文件内容为:
[root@localhost bin]# cat /etc/hosts192.168.184.129 localhost localhost.localdomain localhost4 localhost4.localdomain4
此时使用hostname -i命令再次查看主机名,已经修改过来了
[root@localhost bin]# hostname -i192.168.184.129
三、配置防火墙
配置防火墙开放9999端口,编辑/etc/sysconfig/iptables文件,加入-A INPUT -m state --state NEW -m tcp -p tcp --dport 9999 -j ACCEPT,然后service iptables restart重启防火墙服务。
四、配置jvisualvm
启动tomcat后,在windows本地jdk安装路径bin目录下找到jvisualvm.exe,双击打开后左侧显示如下:
在“远程”上右键-->添加远程主机-->填写主机名:
点击确定后,远程选项下多了一条刚才添加的主机列表。右键-->添加JMX连接,如下图,填入JMX远程连接端口号9999,并勾选“不要求ssl连接”:
点击确定后,左侧多了一条pid为6822的远程连接,6822是远程tomcat的pid:
双击该连接,在右侧可以动态查看jvm的概览信息,监控CPU,java堆,元空间,类,线程等数据:
五、常见问题
在添加JMX连接的时候,经常会出现如下报错:
此时可以从以下几个方向检查:
(1)检查tomcat应用是否启动,或者修改tomcat配置后是否重启tomcat,确保9999端口处于监听状态,查看命令netstat -nl|grep 9999;
(2)检查主机名是否和tomcat中配置的主机名相同,如果不同则按照第二步修改主机名;
(3)检查RMI端口号端口号是否在防火墙进行了配置,如果配置的RMI端口号和JMX端口号不一致,需要在防火墙配置RMI端口号允许访问,如果没有配置,则添加-Dcom.sun.management.jmxremote.rmi.port=9999配置RMI端口号。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
代码知识SEO上一篇 : python 实现简单的计算器(gui界面)
下一篇 : Oracle如何批量将表中字段名全转换为大写(利用简单存储过程)
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!