jconsole 可以很方便的監(jiān)控本機的所有 Java 應(yīng)用和遠程的應(yīng)用.
監(jiān)控本地應(yīng)用
首先就是啟動您要監(jiān)控的應(yīng)用, 例如我用 JDK 1.6 來啟動了 Tomcat, 或者 Eclipse 也可以, 可以在任務(wù)管理器(Ctrl+Alt+Del可以調(diào)出來, 或者在任務(wù)欄點擊右鍵)里看到進程ID, 例如我這里是 6132.
接著在 JDK 安裝目錄中(<JDK_HOME>/bin/jconsole.exe)啟動 jconsole.exe (雙擊或者在 cmd 里面敲入 jconsole), 主界面會提示您建立一個新連接:
可以看到進程ID, 選擇它, 然后點擊"連接". 這些 ID 必須都是用 JDK 1.6 的 java.exe 啟動的, 否則在列表里看不到.
JConsle 能監(jiān)控內(nèi)存,線程,類的數(shù)目和CPU然后點擊各個 Tab 可以看到詳細的輸出, 詳細的輸出包括:
內(nèi)存: 堆/非堆, 峰值, 內(nèi)存的各個部分, 例如 Perm, Eden 等的大小曲線圖.
線程: 峰值, 所有線程的列表, 堆棧跟蹤(哪個對象中的線程)等. 還可以強制執(zhí)行GC.
類: 峰值, 類總數(shù)曲線圖.
MBean: 一些 JVM 參數(shù)的詳細 MBean 信息.
監(jiān)控遠程進程
首先需要在運行的應(yīng)用上啟用遠程管理, 參數(shù)如下(簡單期間就不加用戶驗證了):
java -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar ../demo/jfc/Java2D/Java2Demo.jar
然后連接的時候選擇遠程進程, 地址輸入:
localhost:1090
即可.當(dāng)然在別的電腦上(一般是局域網(wǎng))可以輸入那個電腦的IP.
綜述: 使用 JConsole 可以簡單的監(jiān)控 Server 狀態(tài), 但是本身要占一定的資源, 不過 JVM 自帶的監(jiān)控, 理論上講應(yīng)該是占資源很小很小的, 可以用它來方便的了解 Web 服務(wù)器應(yīng)用進程的狀態(tài). 如果要調(diào)優(yōu)應(yīng)用, 還是使用 JProfiler 等工具更好一些, 當(dāng)然它們占的資源也更大.
posted on 2009-05-06 14:47
ゞ沉默是金ゞ 閱讀(1595)
評論(1) 編輯 收藏 所屬分類:
Java SE