我从 OSX 10.10.2 上运行的 Java Mission Control 访问 Ubuntu 服务器 (14.04.1 LTS) 上的 JVM 时遇到问题
我读过这个问题:How to use Java Mission Control to monitor a JVM in a remote server?这对我没有帮助。
我尝试通过互联网访问服务器,并为路由器上的 TCP 和 UDP 端口 7091 启用端口转发,指向服务器的本地接口(interface)。此端口转发适用于其他服务,因此我很确定这部分没有任何问题。
服务器上的 Java 版本是:
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
我在服务器上启动 JVM,如下所示:
java -Xms2048M -Xmx4096M
-XX:+UnlockCommercialFeatures
-XX:+FlightRecorder
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=7091
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.registry.ssl=false
com.example.MyServer
-arg1 XXX
-arg2 YYY
-arg3 ZZZ
(我已经尝试了很多不同的 -Dcom.sun.management... 参数,这是最新的尝试)
在 OSX 上我的 java 版本是:
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
任务控制版本为 5.3.0
我愿意
File - Connect - Create a new connection
enter Host: DNS name of remote router <I know this is correct>
Port: 7091
当我执行“测试连接”时,它超时并出现错误。
(我已经使用以下命令在服务器上打开了端口 7091:“sudo ufw allowed 7091”。我还需要打开其他端口吗?)
如何进行???
最佳答案
设置 -Djava.rmi.server.hostname= 可能会有所帮助
您不需要显式设置 -Dcom.sun.management.jmxremote.rmi.port=7091,它应该默认与 com.sun.management.jmxremote.port 相同,但只是为了确保您可以设置那也是……
关于java - 使用 Java Mission Profiler 监控远程 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29239862/