2013-02-05 72 views
1

我試圖在遠程主機上剖析我的jvm應用程序。 我正在使用Jvisualvm 我在此http://www.codefactorycr.com/java-visualvm-to-profile-a-remote-server.html中設置了jstatd作爲建議。 我能夠「telnet遠程主機1099」成功。所有的TCP/IP端口在遠程打開防火牆。使用JVisualVM進行JVM遠程分析

我在jvisualvm中添加了我的遠程主機。另外,確保jstatd端口是1099刷新3秒。

我開始了我的應用程序與

-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=8011 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 

但是,我的JVM的應用程序不我jvisualvm露面。還有什麼我需要配置或檢查?

jvisualvm 1.3.5 地方:Mac OSX上的Oracle JDK 1.6.37 遠程:CentOS 6的甲骨文JDK 24年6月1日

回答

1

1)JMX啓用遠程連接


例子你應該開始申請
-Dcom.sun.management.jmxremote  
-Dcom.sun.management.jmxremote.port=9990 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false 

2)你應該有JMX類能夠做些什麼與他們。我想你知道這個

+0

是的,我更新我的問題與我使用的命令行選項。我不確定通信鏈接的部分。 a)Jvisualvm與jstatd默認端口1099對話。與jxmremote.port的關係如何。 b)另外,不知道你有什麼意思,有JXM類。 – smartnut007

1

你需要在遠程機器上啓動jstatd。爲此創建一個jstatd.all.policy文件在遠程機器的主目錄,並添加以下行:

grant codebase "file:${java.home}/../lib/tools.jar" { 
    permission java.security.AllPermission; 
}; 

那麼你的遠程計算機的命令行上您將鍵入

jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname={Your IP address} ' 

一旦jstatd服務在遠程機器上啓動基本上在jvisualVM UI上添加遠程連接IP地址連接使用添加遠程主機

JvisualVM的Oracle文檔可以在https://docs.oracle.com/javase/8/docs/technotes/guides/visualvm/applications_remote.html處查詢,但要了解jstatd步驟真的很讓人困惑。

+0

另外需要注意的是,確保你以普通用戶身份啓動_VisualVM_,即不**使用'psexec -s'。 VisualVM中的功能在_Local_上的右鍵菜單中也稱爲_Add jstatd Connection_。 – buzz3791