使用visualvm 遠程監控 JVM Tomcat And J2SE程序

jopen 10年前發布 | 19K 次閱讀 VisualVM Java開發

VisualVM 提供在 Java 虛擬機 (Java Virutal Machine, JVM) 上運行的 Java 應用程序的詳細信息。在 VisualVM 的圖形用戶界面中,您可以方便、快捷地查看多個 Java 應用程序的相關信息。(摘自官方) 

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</pre>

進行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 </span>連接到服務器監控 </span>Java </span>程序</span></span></span>


 在Java VisualVM 程序窗口左側 “ 遠程 ” 項目右鍵選擇 “ 添加遠程主機 ” ,在彈出的對話框中輸入遠程主機的 IP 地址,確認提交后即可看到相應的遠程主機和在上面運行的 Java 程序,連接成功后應該會顯示 Jstatd 及其 PID 。

 

  通過以上方式連接服務器發現一個問題,如果沒有經過第四步配置的程序也可被監控到,但是不能監控CPU 。提示我們建立 JMX ,建立 JMX 提示要求端口號。( JMX: Java Management Extensions ,即 Java 管理擴展 , 是一個為應用程序、設備、系統等植入管理功能的框架。 JMX 可以跨越一系列異構操作系統平臺、系統體系結構和 網絡傳輸協議,靈活的開發無縫集成的系統、網絡和服務管理應用 。而 Visual VM是通過 JMX 來和遠程 Java 應用聯系的 )。我們都經過第4步配置后,再連接成功,就可以遠程監控服務器性能,可以配合 jmeter 進行了一個長時間的加壓,在加壓過程中重點關注了系統資源的使用情況。

  d1.jpg
d2.jpg
d3.jpg

 

參考博文:

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

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

</span>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!