使用visual VM以及visual GC监控Tomcat内存、CPU、GC等信息

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012865381/article/details/80419691

工作需要,需要监控Tomcat堆内存使用情况
Tomcat也是Java程序,可以使用visual VM等工具远程监控运行状态
大概步骤如下

1.修改catalina.sh

在文件中增加以下代码(没有明确哪一行,最好放到第一个非注释的行前)

JAVA_OPTS='-Xms2048m -Xmx2048m -Xmn1500m -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.0.66.248 -Dcom.sun.management.jmxremote.port=7003 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=/opt/tomcat7/conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/opt/tomcat7/conf/jmxremote.access'

-Xms2048m //Tomcat最小内存
-Xmx2048m //Tomcat最大内存
-Xmn1500m //新生代内存大小,包括Eden区和两个survival区
-Dcom.sun.management.jmxremote //启用JMX
-Djava.rmi.server.hostname=10.0.66.248 //主机名,填写服务器IP即可
-Dcom.sun.management.jmxremote.port=7003 //jmx监听的端口
-Dcom.sun.management.jmxremote.ssl=false //是否使用ssl
-Dcom.sun.management.jmxremote.authenticate=true //是否启用认证
-Dcom.sun.management.jmxremote.password.file=/opt/tomcat7/conf/jmxremote.password //用户名、密码文件,如不存在,需要新建
-Dcom.sun.management.jmxremote.access.file=/opt/tomcat7/conf/jmxremote.access //用户的访问权限文件,如不存在,需要新建

2.创建jmxremote.access、jmxremote.password文件

新建jmxremote.access文件

[root@www tomcat7]# vi /opt/tomcat7/conf/jmxremote.password

内容如下

jundong 123456
guest 123456

新建jmxremote.password文件

[root@www tomcat7]# vi /opt/tomcat7/conf/jmxremote.access

内容如下

jundong readwrite  
guest readonly

由于执行启动Tomcat时,会读取jmxremote.password jmxremote.access文件,同时会检查文件的权限,如果文件权限过大或者过小,Tomcat会启动失败!!!!!
修改权限

[root@www conf]# chmod 600 jmxremote.password jmxremote.access

3.启动Tomcat

[root@www bin]# ./catalina.sh start 

4.使用visual VM监控

打开visual VM,Remote右键添加远程主机
这里写图片描述
输入IP
这里写图片描述
添加JMX监控
这里写图片描述
输入用户密码等
这里写图片描述
ok!可以看到监控信息了
这里写图片描述

5.添加visual GC插件监控GC过程

VisualVM连接远程服务器有两种方式:JMX和jstatd,上面介绍的是JMX,但这两种方式都不能完美支持所有功能,例如JMX不支持VisualGC,jstatd不支持CPU监控,实际使用可同时配置上并按需选用。
1.1 安装visual GC插件
这里写图片描述

1.2 **Mac 可能要修改visual VM的启动参数,Windows我试过一次不用。。。(可选)
Note: To display original Visual GC colors, start VisualVM with an extra command-line parameter: -J-Dcom.sun.tools.visualvm.modules.visualgc.originalUI=true

vi /Applications/VisualVM.app/Contents/Resources/visualvm/etc

在visualvm_default_options参数里添加参数

-J-Dcom.sun.tools.visualvm.modules.visualgc.originalUI=true

配置服务器端的jstatd服务
2.1 修改安全策略

vi $JAVA_HOME/jre/lib/security/java.policy

2.2 启动jstat服务

./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=10.0.66.248

3 启动VisualVM,因为在配置JMX时已经添加过服务器节点,如果配置正确,通常VisualVM会自动检测到jstatd连接并添加节点

这里写图片描述

OK!!!

猜你喜欢

转载自blog.csdn.net/u012865381/article/details/80419691