使用visualvm 远程监控 JVM Tomcat And J2SE程序

1.在服务器上配置 jstatd  security policy 文件

进人服务器的/usr/java/jdk1.6.0_26/bin目录中,在该目录下面建立一个新的文件jstatd.all.policy 文件中的内容为:

grant codebase "file:${java.home}/../lib/tools.jar" {
   permission java.security.AllPermission;
};

2.修改服务器 hosts 文件中的 IP 地址

要使Java VisualVM 成功连接到远程服务器上,服务器端应该在 /etc/hosts 文件中把本机地址设为本机的 IP 地址。使用 hostname -i 命令查看,如果显示的是 127.0.0.1 或者与本机实际 IP 不一致的话,需要把 /etc/hosts 文件中相应的地址改为本机实际 IP 

3.运行 jstatd 守护程序

在服务器的/usr/java/jdk1.6.0_26/bin目录下,执行以下命令:

screen jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.logCalls=true

如果screen命令没有安装,请执行

#如果你使用APT软件包管理工具:
apt-get install screen
如果你使用yum软件包管理工具:
#yum install screen

进行screen命令的安装。jstatd开始运行后,使用 CTRL+A+D 断开 screen 界面,回到 shell 界面。如果想切换回 jstatd 运行界面的话,使用 screen -r -d命令即可


4.Tomcat或J2SE的配置

 服务器的 tomcat 配置 jvm 启动参数。  tomcat  catalina.sh 中添加如下参数:

JAVA_OPTS="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -
Djava.rmi.server.hostname=192.168.5.85"

或这J2SE的程序启动时加入JVM的参数:

nohup java -Djava.rmi.server.hostname=192.168.5.85 -Dcom.sun.management.jmxremote.port=9099 -Djava.ext.dirs=lib -cp . -jar mm7Gate.jar &


5.通过Java VisualVM 连接到服务器监控 Java 程序


 在Java VisualVM 程序窗口左侧 “ 远程 ” 项目右键选择 “ 添加远程主机 ” ,在弹出的对话框中输入远程主机的 IP 地址,确认提交后即可看到相应的远程主机和在上面运行的 Java 程序,连接成功后应该会显示 Jstatd 及其 PID 。

使用visualvm 远程监控 JVM Tomcat And J2SE程序_第1张图片

  通过以上方式连接服务器发现一个问题,如果没有经过第四步配置的程序也可被监控到,但是不能监控CPU 。提示我们建立 JMX ,建立 JMX 提示要求端口号。( JMX: Java Management Extensions ,即 Java 管理扩展 , 是一个为应用程序、设备、系统等植入管理功能的框架。 JMX 可以跨越一系列异构操作系统平台、系统体系结构和 网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用 。而 Visual VM是通过 JMX 来和远程 Java 应用联系的 )。我们都经过第4步配置后,再连接成功,就可以远程监控服务器性能,可以配合 jmeter 进行了一个长时间的加压,在加压过程中重点关注了系统资源的使用情况。

 nohup  java -Xms128m -Xmx512m -Djava.rmi.server.hostname=192.168.5.83 -Dcom.sun.management.jmxremote.port=9089  -Dcom.sun.management.jmxremote.ssl=false  -Dcom.sun.management.jmxremote.authenticate=false -Djava.ext.dirs=lib -cp . -jar $program &

 

 使用visualvm 远程监控 JVM Tomcat And J2SE程序_第2张图片

使用visualvm 远程监控 JVM Tomcat And J2SE程序_第3张图片

参考博文:

http://blog.chinaunix.net/uid-418401-id-2405564.html

http://ihuangweiwei.iteye.com/blog/1219302

你可能感兴趣的:(visualvm,内存监控)