IBM Monitoring and Diagnostic Tools for Java - Health Center 是輕量級即時監控工具,透過圖表、曲線、表格全方位報告 JVM 健康狀態,內建低負擔方法分析器、GC 視覺化、鎖爭用分析、配置瀏覽器,並由專家系統提供診斷建議與命令列參數推薦。支援 Java 5 SR8+、Java 6 SR1+,生產環境建議 Java 5 SR10+、Java 6 SR5+。
依 JVM 版本加入啟動參數:
-Xhealthcenter-agentlib:healthcenter -Xtrace:output=perfmon.out若不確定版本,先試 -Xhealthcenter,失敗再試次選項。啟動成功 Console 顯示 "Health Center agent started on port 1972"(若埠佔用自動遞增)。
儀表板顯示 CPU、記憶體、I/O、鎖四大資源狀態指示燈,紅/橙色代表可優化區域。
Garbage Collection 透視圖提供:
關鍵指標:GC 開銷(GC 佔 CPU 比例)與 暫停時間(應用程式停頓長度)。高開銷代表可用處理時間不足,高暫停代表回應性差。
Locking 透視圖長條圖:顏色綠→紅代表爭用程度,高度代表阻塞請求量。雙高且紅的長條為優化首選目標。鎖定表顯示類別名稱(如 DataStore、Object),若為 Object 需重構程式碼賦予具體類別名或用 javacore 捕獲呼叫堆疊。
優化兩大原則:縮短持鎖時間、增加鎖物件粒度(細化鎖範圍)。
Profiling 透視圖依「熱度」排序方法,紅色代表佔用 CPU 明顯較高。Self 欄位顯示方法本身耗用比例(例:DataStore.storeData 佔 42.1%),Tree 欄位含子呼叫。調用路徑樹追溯呼叫來源(例:90.3% 來自 StoreData.run)。
優化策略:縮減熱點方法工作量(移出迴圈)、減少呼叫頻率(刪除不必要呼叫)。
Health Center 採每 2ms 採樣呼叫堆疊,開銷極低。無法區分「頻繁被呼叫」與「單次執行耗時長」,但足以定位主要瓶頸。
圖表上框選區間可縮小分析範圍,所有透視圖、建議同步更新,適合排除啟動期干擾、聚焦 GC 尖峰期、鎖爭用爆發期。
Environment 透視圖顯示類路徑、系統屬性、環境變數、完整啟動命令列。關鍵診斷點:
堆使用持續上升趨勢圖自動偵測潛在 OOM 風險並預警。確認洩漏後,需配合 IBM Memory Analyzer(ISA 同款免費工具)分析 Heap Dump/System Dump,識別持有洩漏記憶體的物件與引用鏈,修復引用洩漏(如靜態集合未清理、監聽器未移除)。
Health Center 以極低開銷提供 GC、鎖、CPU、配置、穩定性全方位可視化診斷,即使非效能專家亦能快速定位並修復問題,適用開發測試與生產環境,是 Java 開發運維不可或缺的利器。