1. 程式人生 > >JDK自帶的虛擬機器監控視覺化工具之JConsole

JDK自帶的虛擬機器監控視覺化工具之JConsole

  JDK中除了提供大量的命令列工具外,還有兩個功能強大的視覺化工具:JConsole和VisualVM,這篇文章主要來介紹一下JConsole,JConsole是在JDK1.5時期就已經提供的虛擬機器監控工具,是一款基於JMX的視覺化監視和管理的工具,它管理部分的功能是針對JMX MBean進行管理。


一、啟動JConsole
  通過JDK/bin目錄下的“jconsole.exe”啟動JConsole,將自動搜尋出本機執行的所有虛擬機器程序,不需要使用者再使用命令jps來查詢了,啟動畫面如下:


二、JConsole主介面介紹
  選擇其中一個程序,雙擊進入JConsole主介面,可以看到主介面裡包含“概述”、“記憶體”、“執行緒”、“類”、“VM摘要”和“MBean”六個頁籤,如下圖:


1、“概述”頁籤,顯示的是整個虛擬機器主要執行資料的概述,其中包含堆記憶體使用情況、執行緒、類、CPU使用情況四項資訊的曲線圖,這些曲線圖後面是記憶體、執行緒、類頁籤的資訊彙總
2、記憶體監控,“記憶體”頁籤相當於視覺化的jstat命令,用於監視受收集器管理的虛擬機器記憶體(Java堆和永久代)的變化趨勢。


在圖示選項的下拉框中可以選中某一記憶體區域對其進行監視:


3、執行緒監控。“執行緒”頁籤的功能則相當於視覺化的jstack命令,遇到執行緒停頓的時候可以使用這個頁籤進行監控分析。執行緒過長時間停頓的主要原因有:等待外部資源(資料庫連線、網路資源、裝置資源等)、死迴圈、鎖等待(活鎖和死鎖)。


在這個介面的底部,找到你需要查詢的執行緒,可以看到詳細資訊:


當執行緒中出現死鎖後,可點選“檢測死鎖”的按鈕,將出現一個新的“死鎖”頁籤,如果沒有死鎖,則提示沒有檢測到死鎖:
有死鎖:


無死鎖:


4、“類”頁籤是對已載入當前類、已載入類總數和已解除安裝類總數的一個計數,並且給出了曲線圖:


5、“VM概要”頁籤雖說是概要,但是也給出與虛擬機器相關引數較詳細的資料,包括執行緒相關、堆相關、作業系統相關、VM引數和類路徑等等資訊。


6、“MBean”頁籤,就是管理的Bean頁籤,頁面顯示了被載入類的資訊。


三、斷開程序的監控
點選下圖示紅的任意按鈕都可以斷開連線:


四、遠端監控
如下圖,對於遠端程序的監控連線,需要輸入遠端的ip地址和埠號,使用者名稱和密碼,對於ip:埠號、使用者名稱、密碼的設定,在我的另一篇文章中有所說明,文章地址是:https://blog.csdn.net/Apeopl/article/details/81010486


總結:這只是對於JConsole監控工具的一個簡介,大家可以動手編寫一些程式來進行實時監控,發現這些被監控資料的變化,對於程式的優化有個直觀的感受。