我運行JVisualVM(Windows XP,Sun Java 1.6.0.13,32位客戶端VM)來監視遠程應用程序(Linux,Sun Java 1.6.0.07,64位服務器VM )。開始實際的遠程應用程序之前,我在遠程機器jstatd
上推出使用全訪問策略:使用JVisualVM從Java遠程應用程序獲取堆轉儲
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
然後我用命令行
java -Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=3333
compileTest.Main
從客戶機開始實際應用,我可以看到遙遠的應用並監控它。我也可以做一個線程轉儲等。不幸的是,堆轉儲按鈕是灰色的。
如何使用JVisualVM從遠程監控的應用程序獲取堆轉儲?
我試過使用jConsole。使用jConsole,可以使用com.sun.management.HotSpotDiagnostic dumpHeap操作創建遠程堆轉儲。我想將轉儲轉移到客戶端並使用JVisualVM提供的工具進行分析。我怎樣才能做到這一點?
運行jvisualvm爲正在運行的Java進程可能有助於 – rogerdpack 2012-10-02 16:26:26
@rogerdpack好點相同的用戶!我導航到這個問題/主題,因爲我有同樣的問題,http://stackoverflow.com/questions/8799929/visualvm-unable-to-sampler-memory,我認爲你的陳述/假設是正確的。當我在我的開發人員PC /服務器上通過NetBeans IDE運行tomcat/tomee時,啓用了Sampler> Memory按鈕,但在生產服務器上禁用了Sampler> Memory按鈕,因爲tomcat/tomee作爲Windows服務運行, '不'作爲系統或本地服務登錄到生產服務中。 :( – Howard 2013-04-06 13:55:55