天天看點

jvisualvm 連接配接 jstatd 遠端監控 jvm 或 Visual GC提示"不受此JVM支援“

Visual GC提示”不受此JVM支援“,可以使用此方法解決。

jvisualvm 連接配接 jstatd 遠端監控 jvm 或 Visual GC提示"不受此JVM支援“

一、添加配置檔案 jstatd.all.policy

[root@localhost /]# cd /usr/local/src/jdk1.8.0_131/bin/
[root@localhost bin]# vim jstatd.all.policy

grant codebase "file:${java.home}/../lib/tools.jar" {
   permission java.security.AllPermission;
};
           
注:若沒有配置 JDK 環境變量,file 後面添加 tool.jar 的絕對路徑

二、啟動

$JAVA_HOME/bin下執行以下指令(前台)啟動,也可以背景啟動指令,預設監聽1099端口。

參數說明:

  • -J-Djava.security.policy=jstatd.all.policy =号後面的是檔案的絕對路徑;
  • -J-Djava.rmi.server.logCalls=true 打開日志,如果用戶端有連接配接過來的請求,可以監控到,便于排錯;
  • -J-Djava.rmi.server.hostname=192.168.134.128 指明本機 hostname 對應的本機位址,確定該位址可以給客戶機通路。因為有的伺服器 hostname 對應的 ip 不一定是外網能連上的,最好在這裡直接明确指定;
  • -p 3333 指定服務的端口号,預設是1099。也是可選參數。
注意:後面兩個參數可以省略

三、使用 lsof -i:3333 檢視端口是否正常被監聽

[[email protected] bin]# lsof -i:3333
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
jstatd   root   u  IPv6        t0  TCP *:dec-notes (LISTEN)
jstatd   root   u  IPv6        t0  TCP localhost:->localhost:dec-notes (ESTABLISHED)
jstatd   root   u  IPv6        t0  TCP localhost:dec-notes->localhost: (ESTABLISHED)
jstatd   root   u  IPv6        t0  TCP localhost.localdomain:dec-notes->: (ESTABLISHED)
           

四、使用 visualvm 連接配接

jvisualvm 添加 ip 為192.168.134.128 端口為 3333 的遠端機器,這樣可以使用jstatd方式遠端監控JVM。

jvisualvm 連接配接 jstatd 遠端監控 jvm 或 Visual GC提示"不受此JVM支援“
jvisualvm 連接配接 jstatd 遠端監控 jvm 或 Visual GC提示"不受此JVM支援“