簡體   English   中英

使用Java Mission Profiler監視遠程JVM

[英]Monitor remote JVM with Java Mission Profiler

我從OSX 10.10.2上運行的Java Mission Control訪問Ubuntu服務器(14.04.1 LTS)上的JVM時遇到問題

我已經閱讀了以下問題: 如何使用Java Mission Control監視遠程服務器中的JVM? 它沒有幫助我。

我嘗試通過Internet訪問服務器,並為路由器上的TCP和UDP端口7091啟用了端口轉發,指向服務器的本地接口。 此端口轉發可用於其他服務,因此我很確定這部分沒有問題。

服務器上的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 allow 7091”。是否需要打開其他端口?)

如何進行???

設置-Djava.rmi.server.hostname =可能會有所幫助

您無需顯式設置-Dcom.sun.management.jmxremote.rmi.port = 7091,它的默認值應與com.sun.management.jmxremote.port相同,但只是為了確保您也可以進行設置...

我終於找到了正確的配置:

$javabin -Xms2048M -Xmx4096M $GCLOG \
 -XX:+UnlockCommercialFeatures   \
 -XX:+FlightRecorder  \
 -Djava.rmi.server.hostname=myhost.example.com \
 -Dcom.sun.management.jmxremote=true \
 -Dcom.sun.management.jmxremote.port=7091 \
 -Dcom.sun.management.jmxremote.rmi.port=7091 \
 -Dcom.sun.management.jmxremote.authenticate=false \
 -Dcom.sun.management.jmxremote.ssl=false \
 -Djava.net.preferIPv4Stack=true \
  com.example.MyServer -arg1 XXX -arg2 YYY -arg3 ZZZ

重要的部分是java.rmi.server.hostname = myhost.example.com部分,其中myhost.example.com必須解析為路由器的外部接口。

另外,

-Dcom.sun.management.jmxremote.port=7091 \
-Dcom.sun.management.jmxremote.rmi.port=7091 \

..我只需要轉發路由器中的那個端口。

我不確定preferredIPv4是否重要,但是現在我不在乎,它可以正常工作!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM