1.在服务器上配置 jstatd 的 security policy 文件 html
进人服务器的/usr/java/jdk1.6.0_26/bin目录中,在该目录下面创建一个新的文件jstatd.all.policy 文件中的内容为: java
grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission; };
2.修改服务器 hosts 文件中的 IP 地址 shell
要使Java VisualVM 成功链接到远程服务器上,服务器端应该在 /etc/hosts 文件中把本机地址设为本机的 IP 地址。使用 hostname -i 命令查看,若是显示的是 127.0.0.1 或者与本机实际 IP 不一致的话,须要把 /etc/hosts 文件中相应的地址改成本机实际 IP 。 tomcat
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命令便可 jvm
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 &
在Java VisualVM 程序窗口左侧 “ 远程 ” 项目右键选择 “ 添加远程主机 ” ,在弹出的对话框中输入远程主机的 IP 地址,确认提交后便可看到相应的远程主机和在上面运行的 Java 程序,链接成功后应该会显示 Jstatd 及其 PID 。
经过以上方式链接服务器发现一个问题,若是没有通过第四步配置的程序也可被监控到,可是不能监控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 &
参考博文:
http://blog.chinaunix.net/uid-418401-id-2405564.html