使用jconsole监控JVM运行状况

背景

最近有个服务运行几天就会莫名其妙的无法调用, 但使用jps -m|grep 服务名称指令查看后发现服务进程仍然存在; 因此怀疑可能是有内存泄漏导致进程编程”僵尸”进程.

为此决定使用jconsole来对指定进程的JVM进行监控, 下面将详细介绍如何配置Linux JRE来监控内存.

修改启动脚本

在启动脚本中增加启动参数, 启动脚本可以是自定义的shell脚本或tomcat自带的脚本等等.

1
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.10.89 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=39700 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true"

修改JRE

1
2
3
4
5
6
7
8
9
10
# 切换到jdk的子目录
/usr/local/jdk1.8.0_60/jre/lib/management
# 修改权限并修改文件名
chmod 600 jmxremote.password.template
mv jmxremote.password.template jmxremote.password
# 修改文件内容
vim jmxremote.password
# 在文件末尾增加用户名和密码
monitorRole 123456
controlRole 123456

启动jconsole

启动程序脚本;

启动jconsole, 如下图;

转载

本文出自<<arccode>>, 欢迎转载, 转载请注明出处.