利用JConsole工具監控java程序內存和JVM


一.找到java應用程序對應的進程PI

性能測試應用程序訪問地址:http://192.168.29.218:7070/training/

部署的應用服務器為tomcat6.028

  1. 啟動tomcat服務器后,任務管理器里可以看到多了java.exe進程,如圖

PS:這里啟動了多個其他程序

      2.查詢測試應用程序對應的進程PID號(根據端口號查找)

          1)  Cmd命令:netstat  -aon|findstr  "7070"

二.啟動JConsole監控工具

方法一:

打開cmd命令窗口,進入jdk安裝路徑下/bin目錄,

輸入命令:JConsole “PID號” 如圖:

如圖自動啟動並打開JConsole監控界面:

方法二:進入jdk安裝目錄bin目錄下,雙擊運行JConsole.exe程序,選擇應用程序對應的PID程序連接或雙擊即可

三.對圖表進行性能分析

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參數分別設置堆的初始值和最大值。

此圖需要關注分析當前堆大小、堆大小的最大值、分配的內存,以及物理總內存和可用物理內存。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM