用 jconsole 在 Linux 上監控你的 Java
Java 開發工具包(JDK)提供了開發 Java 應用程序的二進位文件、工具和編譯器。其中一個有用的工具是 jconsole
。
為了演示,我將使用 WildFly J2EE 應用伺服器,它是 JBOSS 開源應用伺服器項目的一部分。首先,我啟動了一個獨立的實例。
~/wildfly/24.0.1/bin$ ./standalone.sh
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /home/alan/wildfly/24.0.1
JAVA: /usr/lib/jvm/java-11-openjdk-11.0.11.0.9-5.fc34.x86_64/bin/java
現在,在另一個終端,輸入 jconsole
。
$ jconsole
啟動後,jconsole 會列出本地實例。選擇「 本地進程 」,然後選擇進程的名稱並點擊「 連接 」。這就是連接並開始使用運行中的 Java 虛擬機(JVM)的 jconsole 的全部過程。
![jconsole 與本地進程的新連接屏幕](/data/attachment/album/202110/08/131136m8wqj69qkwk90rzj.png "new connection")
概述
這個 Java 監控和管理控制台在儀錶板的頂部顯示進程標識符(PID)。「 概述 」標籤有四個圖表,顯示「 堆內存使用情況 」、「 線程 」、「 類 」和「 CPU 使用情況 」的重要信息。
![jconsole 儀錶板顯示堆內存使用量、線程、類和 CPU 使用量](/data/attachment/album/202110/08/131137qk2lkqddkvdlv8r8.png "tab overview")
沿著頂部的標籤提供每個區域的更詳細的視圖。
內存
「 內存 」標籤顯示 JVM 所使用的內存的各個方面的圖表。分配給 JVM 的伺服器系統內存量被稱為「 堆 」。這個屏幕還提供了關於堆的內部組件使用情況的詳細信息,例如 「 伊甸園 」、「 老年代 」 和 「 倖存者區 」。你也可以手動請求一個垃圾收集動作。
![jconsole 內存標籤](/data/attachment/album/202110/08/131137tzd4ynzxg39xgggn.png "memory tab")
線程
「 線程 」標籤顯示有多少線程在運行。你也可以手動檢查是否存在死鎖。
![jconsole 線程儀錶板顯示了隨時間變化的線程數量和滾動的線程列表](/data/attachment/album/202110/08/131137mw40o0jozz4meomo.png "threads tab")
類
「 類 」標籤告訴你有多少類被載入,有多少被卸載。
![jconsole 類標籤顯示隨著時間推移載入的類數量](/data/attachment/album/202110/08/131138i00nh2mbuyaghuze.png "classes tab")
虛擬機摘要
「 虛擬機摘要 」標籤提供了許多關於應用程序和主機系統的細節。你可以了解你所處的操作系統和架構、系統內存總量、CPU 數量,甚至交換空間。
![jconsole 虛擬機摘要標籤](/data/attachment/album/202110/08/131138q3slr1secu5slbjt.png "VMsummary tab ")
摘要中顯示的關於 JVM 的進一步細節,包括當前和最大的堆大小以及正在使用的垃圾收集器的信息。底部的窗格列出了傳遞給 JVM 的所有參數。
MBeans
最後一個標籤,MBeans,讓你通過所有的 MBeans 向下鑽取,以查看每個 MBeans 的屬性和值。
![MBeans 標籤](/data/attachment/album/202110/08/131138qwtfriqlutiitn5u.png "MBeans tab")
總結
Java 已經存在了很長時間,它將繼續為全球數百萬的系統提供動力。有很多開發環境和監控系統可以使用,但像 jconsole
這樣的包含在基本工具包中的工具非常有價值。
via: https://opensource.com/article/21/10/monitor-java-linux-jconsole
作者:Alan Formy-Duval 選題:lujun9972 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive