jconsole & jvisualvm遠程監視websphere服務器JVM的配置案例

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…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營