1. 程式人生 > >監控Linux環境下JVM應用記憶體的兩種方法

監控Linux環境下JVM應用記憶體的兩種方法

效能測試監控中,監控Linux環境下應用記憶體方法如下:

---------------------------------------------------------------------------------------------------------------------------

有兩種方法:

方法一:使用 Xing+Putty方式監控 


獲知待監控的Linux伺服器:IP 使用者、密碼、埠 如(192.168.0.83 root/111111 埠9180) 
本地PC:B;應用伺服器:A 
1)本地B安裝工具“Xming-6-9-0-31-setup”,X server,一個SSH客戶端 
2)本地B安裝JDK:jdk-6u43-windows-x64 
3)本地B配置安裝好的Xming,配置過程參見說明連結:

http://www.zw1840.com/blog/zw1840/2008/10/putty-xming-linux-gui.html
4)SSH方式連線A,在A上啟用SSH的X11 forwarding,方法是,檢視 /etc/ssh/sshd_config 檔案,修改X11Forwrding no 為 X11Forwrding yes 
5)雙擊啟動步驟3)中建立的桌面快捷圖示檔案“Xming.display.0.xlaunch” 
6) SSH方式連線A,執行JDK安裝目錄/usr/java/jdk1.6.0_32/bin/下的執行程式jvisualvm,在開啟的檢視中選擇已載入到本地的待監控程式 
7)可忽略本步驟-在本地B,進入JDK安裝目錄,執行bin目錄下的程式jvisualvm 
8)如需同時監控不同環境下記憶體,重複步驟3)-6) 

以上步驟可顯示載入到本地的待監控應用,可選擇監控

可能遇到問題: 本地JDK無法開啟 :原因未明 ,預計為本地JDK 安裝問題。

備註的其他說明:
PS:確認監控服務的防火牆關閉 
service iptables status 檢視防火牆狀態 
service iptables stop 立即關閉防火牆 
檢視防火牆:vi /etc/sysconfig/iptables 
編輯防火牆檔案新增信任:-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 12345 -j ACCEPT 
/usr/local/tomcat/bin/startup.sh 啟動tomcat 
netstat -an | grep 6969命令檢視埠是否正常啟動 ,返回資訊為:tcp 0 0 :::6969 :::* LISTEN 
netstat -apn|grep 6969 檢視埠為6969的程序ID ,返回資訊為:tcp 0 0 :::6969 :::* LISTEN 25333/java


---------------------------------------------------------------------------------------------------------------------------

    檢視tomcat埠:ps -aux | grep tomcat 

    檢視埠與程序ID:netstat -apn

    檢視埠 :ps -aux |grep java 或 ps -aux |grep pid 

    關閉端佔用:Kill;netstat -anp |grep 8080

1、首先需要停止正在執行的服務:resin-XXX stop 
2、然後在Linux的伺服器啟動項中新增如下資訊: 
#pwd //顯示當前目錄常規顯示路徑   /home/apache-tomcat-6.0.37/bin 或/usr/local/tomcat/bin/catalina.sh 

# vi catalina.sh 新增如下內容: 

CATALINA_OPTS="-Djava.rmi.server.hostname=192.168.1.122  //也可編輯為 CATALINA_OPTS="$CATALINA_OPTS 

 -Dcom.sun.management.jmxremote

 -Dcom.sun.management.jmxremote.port=6969

 -Dcom.sun.management.jmxremote.ssl=false

 -Dcom.sun.management.jmxremote.authenticate=false"

在這個前面新增以上 內容 # OS specific support. $var _must_ be set to either true or false.

3、重新啟動服務resin-XXX start  如無法重啟,需重啟Linux:reboot 重啟Tomcat :startup.bat
4、最後雙擊本機../jdk1.6/bin/jconsole.exe,啟動Jconsole監控介面,在遠端連線處輸入:192.168.0.116:6969,輸入Linux主機的使用者名稱和密碼;或連接出輸入:service:jmx:rmi:///jndi/rmi://192.168.0.116:6969/jmxrmi 

//其中第一個引數可以用來設定欲連線的Linux機器的IP地址,該項必須設定,否則遠端連線會因為解析到127.0.0.1出現連線失敗的情況。 
//第三個引數是設定欲連線到Linux機器上的埠號,在不跟Linux中現有埠衝突的情況下,可隨意設定該埠 

//所以如果不知道Linux機器的使用者名稱和密碼,也可以不輸入,直接連線,由於Dcom.sun.management.jmxremote.authenticate=false,設定成了false。

為指定連線IP情況下可修改hosts檔案

1)使用命令檢視 hostname -i 如果顯示為127.0.0.1 127.0.0.1 
2)修改/etc/hosts檔案,將其第一行的“127.0.0.1 localhost.localdomain localhost”,修改為:“192.168.1.234 localhost.localdomain 
localhost”,其中,“192.168.1.234”為實際的伺服器的IP地址。 

補充:由於配置了上述步驟2)檔案,在停止tomcat的時,會由於上述配置的埠被佔用而無法停掉。2種方式解決: 
(1)使用killall -9 java 殺掉所有的java程序。 
(2)在home/apache-tomcat--6.0.37/bin/catalina.sh中配置CATALINA_PID=pid,這樣在停止tomcat的過程中,上述被佔用的埠會自動被殺掉。