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

VisualVM 遠程監控實戰:基於 jstatd 的 JVM 性能分析

     編輯:Java 綜合教學

方案一:jstatd 守護進程模式(標準 RMI)

1. 創建安全策略文件

# $JAVA_HOME/bin/jstatd.all.policy
grant codebase "file:${java.home}/../lib/tools.jar" {
    permission java.security.AllPermission;
};

2. 啟動 jstatd

jstatd -J-Djava.security.policy=jstatd.all.policy

默認監聽 1099 端口(RMI Registry)。

3. 驗證端口

netstat -an | grep 1099

4. VisualVM 連接

  • File → Add Remote Host → 輸入目標 IP。
  • 右鍵 Remote Host → Add JMX Connection → 服務 URL:service:jmx:rmi:///jndi/rmi://:1099/jmxrmi。
  • 即可查看遠程 JVM:堆、線程、類、GC、CPU、內存池等。

方案二:XShell 隧道 + 本地 jvisualvm(圖形化無需策略文件)

  1. XShell 會話屬性 → 通道 → 添加隧道:類型 Local,監聽端口 9090,目標 localhost:1099。
  2. 遠程服務器啟動應用時添加 JVM 參數:
    -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=
  3. 本地啟動 jvisualvm,File → Add JMX Connection → localhost:9090。

常見問題

  • 連接被拒:檢查防火牆 1099/隨機 RMI 端口、java.rmi.server.hostname 設置正確 IP。
  • 權限不足:策略文件路徑錯誤或 tools.jar 不存在(JDK 而非 JRE)。
  • 只看到概覽:需 JMX 連接而非僅 jstatd,添加上述 JMX 參數。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved