jconsole是JDK里自帶的一個工具,可以監測Java程序運行時所有對象的申請、釋放等動作,將內存管理的所有信息進行統計、分析、可視化。我們可以根據這些信息判斷程序是否有內存泄漏問題。
使用jconsole工具來分析WAS的JVM問題,需要進行相關的配置。
首先我們看WAS服務器端的配置.
備註:192.168.217.139是一台測試用的WAS服務器,運行着WAS8.5,運行着一套集群,而TestAppSer01是其中一台AppServer應用服務器:
1、登錄was控制台https:// 192.168.217.139 /ibm/console/,找到TestAppSer01的應用程序服務器—java和進程管理—進程定義–JAVA虛擬機,然後配置 通用JVM 參數 :
加入以下jvm參數:
-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote
如下圖所示:
注意:等號後面一定要保留空格,否則會報錯。


2、修改/opt/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遠程登錄的用戶名和密碼
在/opt/IBM/WebSphere/AppServer/java/jre/lib/management下有個jmxremote.password.template文件,在最後面加入你要設置的用戶名和密碼
root root@123 (用戶名、密碼,可以隨意修改)
4、在was控制台上停掉自己的應用程序服務器,然後重啟。如下圖所示:

WINDOWS客戶端的設置
1、進入JAVA所在的BIN目錄
![]()
2、輸入IP、端口號、用戶名和密碼進行遠程連接

3、監控界面可以看到內存、類、線程、CPU的使用情況。

使用這個工具再配合JCA工具就能很方便的分析內存溢出問題。
4、對圖表進行性能分析
JConsole主要是監控java應用程序,它是jdk自帶的工具,一個基於JMX用於連接正在運行的JVM,會啟動com.sun.management.jmxremote實現默認地JMX管理客戶端。
1) 概要
概要界面可以實時查看java應用程序的堆內存使用情況、線程、類以及CPU使用情況,如圖:

2) 內存
內存界面可以在圖表選擇“堆內存使用情況”和“非堆內存使用情況”實時圖,並顯示內存詳細信息:使用內存、分配:最大值等,如圖:

PS:重點關注使用內存的佔比,使用內存與最大值之間的合理比值為1:3,已使用內存不能大於1/2最大值,否則內存存在瓶頸。
3) 線程
線程圖不是重點關注,只關注該線程情況,並可以檢測是否有死鎖線程。

4) 類
類圖並不是重點關注圖,與應用程序類的多少有關,無固定值。

1) VM摘要
VM摘要圖是觀察JVM使用情況圖

堆是由Java虛擬機(JVM,下文提到的JVM特指Sun hotspot JVM)用來存放Java類、對象和靜態成員的內存空間,Java程序中創建的所有對象都在堆中分配空間,堆只用來存儲對象,應用程序通過存放在堆棧(Stack)內的引用來訪問堆數據,一個JVM進程只能擁有一個堆。JVM通過-Xms和-Xmx參數分別設置堆的初始值和最大值。
此圖需要關注分析當前堆大小、堆大小的最大值、分配的內存,以及物理總內存和可用物理內存。
而另外一種監控軟件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)啟動jvisualvm.exe

2)連接遠程was服務進程:

繼續增加遠程JMX連接:

3)正常連接可看到如下監控界面:

以下文章點擊率最高
Loading…