Websphere設置java監控參數,以便jconsole可以遠程監控

 

jconsole是JDK裏自帶的一個工具,可以監測Java程序運行時所有對象的申請、釋放等動作,將內存管理的所有信息進行統計、分析、可視化。我們可以根據這些信息判斷程序是否有內存泄漏問題。  使用jconsole工具來分析WAS的JVM問題,需要進行相關的配置。  首先我們看WAS服務器端的配置.

1、登錄was控制檯https://10.4.119.18:9043/ibm/console/,找到自己的應用程序服務器---java和進程管理---進程定義--JAVA虛擬機,然後配置 通用JVM 參數 
加入以下jvm參數:-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote
注意:等號後面一定要保留空格,否則會報錯。
 

 
2、修改/usr/IBM/WebSphere/AppServer/java/jre/lib/management下的management.properties文件,在最後加入  
com.sun.management.jmxremote.port=8999
com.sun.management.jmxremote.authenticate=false
com.sun.management.jmxremote.ssl=false
注意:先執行netstat -ano | grep 8999,查看這個端口是否被使用。另外注意防火牆對8999端口的配置,要放開,否則遠程機器可能連接不上.

3、設置jconsole遠程登錄的用戶名和密碼在/usr/IBM/WebSphere/AppServer/java/jre/lib/management下有個jmxremote.password.template文件,在最後面加入你要設置的用戶名和密碼
root root@123 (用戶名、密碼,可以隨意修改)

4、在was控制檯上停掉自己的應用程序服務器,然後重啓。

WINDOWS客戶端的設置
1、進入JAVA所在的BIN目錄

2、輸入IP、端口號、用戶名和密碼進行遠程連接
 
3、監控界面可以看到內存、類、線程、CPU的使用情況。
 
使用這個工具再配合JCA工具就能很方便的分析內存溢出問題。
 

Java VisualVM也是JDK的一個集成的分析工具,自從JDK 6 Update 7以後已經作爲Sun的JDK的一部分。VisualVM可以監控應用程序的性能和內存佔用情況、監控應用程序的線程、進行線程轉儲(Thread Dump)或堆轉儲(Heap Dump)、跟蹤內存泄漏、監控垃圾回收器、執行內存和CPU分析,保存快照以便脫機分析應用程序;同時它還支持在MBeans上進行瀏覽和操作。 VisualVM自身要在JDK6以上的運行,但是JDK1.4以上版本的程序也能被它監控。
 
啓動方法:進入JAVA_HOME所在的bin目錄,運行jvisualvm.exe就可以啓動VisualVM遠程連接WAS服務器的話,需要添加JMX連接方式就可以了

內存溢出的原因有很多種,比如:
1、數據量過於龐大;死循環 ;靜態變量和靜態方法過多;遞歸;無法確定是否被引用的對象;
2、虛擬機不回收內存(內存泄漏);說白了就是程序運行要用到的內存大於虛擬機能提供的最大內存就發生內存溢出了。 
內存溢出的問題要看業務和系統大小而定,對於某些系統可能內存溢出不常見,但某些系統還是很常見。
 
內存溢出的一般解決方法:
一個是優化程序代碼,如果業務龐大,邏輯複雜,儘量減少全局變量的引用,讓程序使用完變量的時候釋放該引用,能夠讓垃圾回收器回收和釋放資源。
二就是物理解決,增大物理內存,然後通過-Xms256m -Xmx2048m 的修改來增大內存空間。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章