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