首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

善用 JDK 1.5 內建工具進行 JVM 效能監控與診斷

     編輯:Java 相關知識

工具鏈概覽

JDK 1.5 提供三大命令列監控工具,構成完整的遠端監控鏈路:

  • jps (JVM Process Status Tool) - 列出 JVM 進程
  • jstat (JVM Statistics Monitoring Tool) - 即時效能指標
  • jstatd (RMI Daemon) - 遠端監控代理

輔助視覺化工具:jvmstat 含 visualgc 圖形化 GC 監控介面。

部署架構

[被監控機器 Linux]                    [監控客戶端]
+---------------------+                 +------------------+
| Java App (PID 14115)|                 | jps 172.25.1.24  |
| jstatd (RMI)        |◄────────────────| jstat -gc 15117@ |
+---------------------+   RMI/TCP       +------------------+
        ▲
        | visualgc (本地或遠端)
+---------------------+
| visualgc.jar        |
+---------------------+

步驟詳解

1. 被監控端部署

  • 安裝 JDK 1.5,設定 JAVA_HOME/PATH
  • 修改 $JAVA_HOME/jre/lib/security/java.policy,授權 tools.jar 完全權限:
    grant codebase "file:${java.home}/../lib/tools.jar" {
        permission java.security.AllPermission;
    };
  • 啟動 jstatd:
    ./jstatd -J-Djava.security.policy=all.policy

2. 客戶端操作

查詢遠端 JVM 進程

jps 172.25.1.24
# 輸出:
# 13686 Jstatd
# 14115 XXXJavaServer
# 15117 Jserver

監控 GC 情況

jstat -gc 15117@172.25.1.24 1000 3
# 參數: -gc 選項, vmid@host, 間隔(ms), 次數
# 輸出: S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT

常用 jstat 選項

3. 視覺化監控 visualgc

# Linux
/usr/java/jdk1.5/bin/java -Xbootclasspath/p:"/usr/java/jdk1.5/lib/tools.jar" -jar jvmstat/jars/visualgc.jar 15117@172.25.1.24

# Windows (調整路徑)
java -Xbootclasspath/p:"C:\jdk1.5\lib\tools.jar" -jar visualgc.jar 15117@172.25.1.24

視窗即時顯示:Eden/Survivor/Old/Perm 區使用曲線、GC 次數/耗時、類載入統計等。

實戰建議

  • 持續監控:腳本化 jstat -gcutil PID 2000 > gc.log 產生日誌供事後分析
  • 關鍵指標:Old 區使用率持續 >80%、Full GC 頻率 >1次/分、GC 耗時 >1秒 需調優
  • 防火牆注意:jstatd 使用 RMI 動態埠,需開放或配合 -p 固定埠

總結

JDK 內建工具鏈無需額外安裝、零侵入式監控、支援遠端操作,是生產環境 JVM 診斷的首選利器。配合 visualgc 視覺化介面,能直觀掌握記憶體動態行為,大幅降低效能調優門檻。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
選項監控重點
-class類載入/卸載統計
-compilerJIT 編譯統計
-gcGC 堆區使用量與次數
-gccapacity各代區容量上限
-gcutil各代區使用百分比 (最常用)
-printcompilation熱點方法編譯記錄