JDK 5.0 引入了一組強大的命令列工具,讓開發者能深入 JVM 內部進行效能調優、記憶體分析與問題診斷。這些工具各有專長,涵蓋從執行緒堆疊追蹤到記憶體映射的完整診斷鏈。本文逐一解析這七大核心工具的適用場景與操作要點。
| 工具 | 主要功能 | 適用平台 | 核心優勢 |
|---|---|---|---|
| jstack | 執行緒堆疊追蹤 (Java + Native) | Solaris / Linux | 崩潰現場還原、死結偵測 |
| jconsole | 圖形化即時監控 (JMX) | 跨平台 | 視覺化記憶體/執行緒/類別載入監控 |
| jinfo | 配置資訊提取 | Solaris / Linux | 從 core 檔案還原 JVM 參數 |
| jmap | 記憶體映射分析 | Solaris / Linux | Heap/Perm 詳細佔用情況 |
| jdb | 命令列除錯器 | 跨平台 | Core 檔案與執行中進程雙模式除錯 |
| jstat | 命令列即時效能統計 | 跨平台 | GC、Heap、類別載入即時數據 |
| jps | JVM 進程狀態列表 | 跨平台 | 快速定位進程 ID 與啟動路徑 |
當 Java 應用意外終止產生 core dump 時,這三款工具組成「鐵三角」:
注意:此三工具僅在 Solaris/Linux JDK 提供,Windows 需改用 VisualVM 或 jcmd。
JDK 5.0 之前的 Heap Analysis Tool (HAT) 與 kill -3 產生 Thread Dump 組合,在無法使用新工具的舊環境中仍是不可或缺的「備胎方案」。建議建立工具選型決策樹:優先使用新工具,受限平台回退經典組合。
掌握這七大工具,等於擁有了 JVM 的「X 光機」與「心電圖」。建議開發與運維團隊共同建立工具操作手冊,將被動救火轉為主動體檢。