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監控工具的一個簡介,大家可以動手編寫一些程式來進行實時監控,發現這些被監控資料的變化,對於程式的優化有個直觀的感受。