遠程監視jboss應用java記憶體的配置(實測)

來源:互聯網
上載者:User

前言

       因為最近一個項目部署在客戶那邊運行一個月左右就會出現java記憶體溢出的問題,為了時時監控java記憶體的情況需要,需要遠程查看伺服器上java記憶體的一些情況。在公司模擬部署了遠程監視linux下項目啟動並執行情況。

 

一、簡單介紹兩個jdk1.6內建的可視化監視工具
    Jconsole:Java 6.x採用JMX方式提供了一系列監視和管理虛擬機器的API,隨SDK一起發布的JConsole則是採用這些API實現監控虛擬機器的使用工具。 JConsole能夠提供被監控虛擬機器的記憶體、線程、類的載入以及MBean等資訊,從而能夠對伺服器的運行情況進行即時監控。

   JVisualVM: 是Netbeans的profile子項目,已在JDK6.0 update 7 中內建(java啟動時不需要特定參數,監控工具在bin/jvisualvm.exe),能夠監控線程,記憶體情況,查看方法的CPU時間和記憶體中的對 象,已被GC的對象,反向查看分配的堆棧(如100個String對象分別由哪幾個對象分配出來的)。

 

二,如果是win系列的電腦查看原生記憶體情況,直接找到jdk的安裝路徑雙擊上面提到的可視化監視工具即可  

三,如果是想監視遠端java記憶體的情況可要做一些相應的配置   運行環境
              伺服器:Redhat6.0 + JDK 1.6+ Jboss 5.1 
              ip地址:192.168.1.250
              客戶機:Windows + JDK 1.6

 

        2.   不帶使用者名稱密碼的參數配置(很簡單),只需要修改jboss中bin下的run.sh。在該句下邊添加上紅色字跡的部分即可

                JAVA_OPTS="-Dprogram.name=$PROGNAME $JAVA_OPTS"
                JAVA_OPTS="$JAVA_OPTS   -Dcom.sun.management.jmxremote.port=9999"   
                JAVA_OPTS="$JAVA_OPTS   -Dcom.sun.management.jmxremote.authenticate=false"   
                JAVA_OPTS="$JAVA_OPTS   -Dcom.sun.management.jmxremote.ssl=false"   
                JAVA_OPTS="$JAVA_OPTS   -Djava.rmi.server.hostname=192.168.1.250"

 

                 注意:
                 1、9999表示監控的連接埠號碼,確保指定的連接埠不被佔用;
                 2、可以採用netstat -an來查看已經佔用的連接埠;
                 3、配合lsof -i:portnum 來查看佔用連接埠的具體應用程式;
                 4、另外如果開啟了防火牆服務,請確保連接埠能夠透過防火牆訪問;

                 5、192.168.1.250為當前伺服器的IP;

 

       3.   啟動JBoss伺服器


               ./run.sh -b 192.168.1.250  & 必須通過-b參數指定Jboss伺服器綁定的地址;
               允許所有使用者串連 則為 -b 0.0.0.0

 

        4,    串連遠程虛擬機器

               啟動本機%JAVA_HOME%\bin目錄下的JConsole,
               在彈出對話方塊的“遠程進程:”一欄中,輸入192.168.1.250:9999,然後點擊“串連”,如下圖所示:

               

 

               附加:帶使用者名稱密碼的參數配置 

                     一,修改jboss中bin下的run.sh。在該句下邊添加上紅色字跡的部分

                         JAVA_OPTS="-Dprogram.name=$PROGNAME $JAVA_OPTS"
                         JAVA_OPTS="$JAVA_OPTS   -Dcom.sun.management.jmxremote.port=9999"  
                         JAVA_OPTS="$JAVA_OPTS   -Dcom.sun.management.jmxremote.authenticate=true"  
                         JAVA_OPTS="$JAVA_OPTS   -Dcom.sun.management.jmxremote.ssl=false"   
                         JAVA_OPTS="$JAVA_OPTS   -Djava.rmi.server.hostname=192.168.1.250"
                         JAVA_OPTS="$JAVA_OPTS   -Dcom.sun.management.jmxremote.password.file=/usr/java/jdk1.6/jre/lib/management/jmxremote.password"

                       

                          注意 $JAVA_HOME/jre/lib/management/jmxremote.password  中 jmxremote.password是由原來的jmxremote.password.template複製一份得到,

                         去掉 monitorRole  QED前面的#   如果不做修改  登入的使用者名稱:monitorRole 密碼:QED   (可根據需要修改使用者名稱密碼,但是如果做修改也要同

                          是修改jmxremote.access中的相對應名字的許可權

                     二,如果啟動過程中出現這個問題或者錯誤

                        

                       則是因為jmxremote.password 的許可權問題   在該檔案路徑下執行:chmod  600 jmxremote.password 

                      重新按照3啟動項目即可。

 

 四,對於JVisualVM而言在  樹結構的  Remote中添加遠程ip,然後右鍵該ip添加JMX連結添加上連接埠號碼和使用者名稱密碼即可連結成功,如圖所示:

               


 


 

                         

             

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.