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 |
+---------------------+
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
jps 172.25.1.24
# 輸出:
# 13686 Jstatd
# 14115 XXXJavaServer
# 15117 Jserver
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
| 選項 | 監控重點 |
|---|---|
| -class | 類載入/卸載統計 |
| -compiler | JIT 編譯統計 |
| -gc | GC 堆區使用量與次數 |
| -gccapacity | 各代區容量上限 |
| -gcutil | 各代區使用百分比 (最常用) |
| -printcompilation | 熱點方法編譯記錄 |