JDK 6 內建 jconsole (Java Monitoring & Management Console),無需額外安裝即可監控本地/遠端 JVM 記憶體、執行緒、類別載入、MBean 等關鍵指標。
JDK_HOME/bin/jconsoletasklist | findstr java (Windows) 或 jps -l (跨平台)jconsole <PID>
| 分頁 | 核心指標 | 異常徵兆 |
|---|---|---|
| 概觀 | 堆/非堆記憶體、執行緒、類別、CPU 綜合趨勢 | 記憶體鋸齒上升、執行緒洩漏 |
| 記憶體 | Eden/Survivor/Old/Perm 代詳細用量、GC 次數/耗時 | Old Gen 持續增長、Full GC 頻繁 |
| 執行緒 | 活躍/峰值/守護執行緒數、堆疊追蹤、死鎖偵測 | 執行緒數無上限增長、死鎖 |
| 類別 | 載入/卸載類別數趨勢 | 類別洩漏 (動態代理/熱部署) |
| MBeans | Tomcat/JMX 自訂 MBean 屬性/操作/通知 | 資料源耗盡、請求佇列積壓 |
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=falseDump heap → 配合 MAT/Eclipse Memory Analyzer 分析jconsole 是生產環境故障排查首選工具,建議常態化監控關鍵 JVM。