使用visualvm 远程监控 JVM

 

1. 测试环境java

Ubuntu Server 10.01shell

 

2.  在服务器上安装 jstatd 组件tomcat

使用apt-get 命令安装 openjdk 便可 :安全

 

  1. sudo apt-get install openjdk-6-jdk  

 

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

 

   jstatd是一个监控 JVM 从建立到销毁过程当中资源占用状况并提供远程监控接口的 RMI ( Remote Method Invocation ,远程方法调用)服务器程序,它是一个 Daemon 程序,要保证远程监控软件链接到本地的话须要 jstatd 始终保持运行。 网络

   jstatd运行须要经过 -J-Djava.security.policy=*** 指定安全策略,所以咱们须要在服务器上创建一个指定安全策略的文件jstatd.all.policy ,文件内容以下:框架

 

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

 

 

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

 

 

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

 

5. 运行 jstatd 守护程序性能

 

 

  因为 jstatd 须要保持一直运行,因此建议使用 screen 命令执行 jstatd 程序,命令以下:

  1. screen jstatd -J-Djava.security.policy=jstatd.all.policy  

 

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

 

 

若是须要RMI 日志功能的话,还能够在启动参数中加入 -J-Djava.rmi.server.logCalls=true 。

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

 

 

jstatd开始运行后,使用 CTRL+A+D 断开 screen 界面,回到 shell 界面。若是想切换回 jstatd 运行界面的话,使用 screen -r -d命令便可。

 

6. 经过Java VisualVM 链接到服务器监控 Java 程序

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

 

 

  经过以上方式链接服务器发现一个问题,不能监控CPU 。提示咱们创建 JMX ,创建 JMX 提示要求端口号。( JMX:Java Management Extensions ,即 Java 管理扩展 , 是一个为应用程序、设备、系统等植入管理功能的框架。 JMX 能够跨越一系列异构操做系统平台、系统体系结构和 网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用 。而Visual VM是经过 JMX 来和远程 Java 应用联系的 )。

 

 

7. T omcat中配置

  下面咱们为54 服务器的 tomcat 配置 jvm 启动参数。 在 tomcat 的 catalina.sh 中添加以下参数:

  1. JAVA_OPTS='-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false'   

 

或:

  1. 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.1.54  其余配置’  

 

 

 

注:1. -Dcom.sun.management.jmxremote.port :这个是配置远程 connection 的端口号的,要肯定这个端口没有被占用

2. -Dcom.sun.management.jmxremote.ssl=false 指定了 JMX 是否启用 ssl

3. -Dcom.sun.management.jmxremote.authenticate=false   指定了JMX 是否启用鉴权(须要用户名,密码鉴权)

   2,3两个是固定配置,是 JMX 的远程服务权限的

4. -Djava.rmi.server.hostname :这个是配置 server 的 IP 的

 

 

链接成功,如今咱们能够远程监控服务器性能,能够配合 jmeter 进行了一个长时间的加压,在加压过程当中重点关注了系统资源的使用状况。

资源:http://sjsky.iteye.com/blog/705323 ;

相关文章
相关标签/搜索