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