gpt4 book ai didi

java - 如何在没有 SSL 的情况下远程使用 jmap?

转载 作者:搜寻专家 更新时间:2023-11-01 03:36:15 24 4
gpt4 key购买 nike

我已经配置了我的 linux 远程机器(使用 JRE 1.7)来执行具有 jmx 必要属性的 java 应用程序:

java -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=5005 \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar myapplication.jar

现在在我的 windows 本地机器上(我有 JDK 1.7)我想使用工具 jmap,例如打印直方图:

jmap -histo 10.218.72.227:5005

但出现以下错误:

Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
Attaching to remote server 10.218.72.227:5005, please wait...
Error attaching to remote server: java.rmi.NotBoundException: Not bound: "SARemoteDebugger" (only bound name is "jmxrmi")

奇怪的是我可以使用 jconsole 成功连接,但首先它提示我一条消息以不安全地重试连接(没有 SSL):

enter image description here

因此,它似乎应该是 jmap 的某种标志才能工作,您知道如何克服这个问题吗?

最佳答案

遵循 jsadebugd - Serviceability Agent Debug Daemon 的手册页您首先需要将其附加到您的进程,以便能够远程使用 jmap

下面的步骤展示了它是如何工作的。

所有 java 进程(本地和远程)使用的 Java 版本。

java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) Server VM (build 24.80-b11, mixed mode)

在远程主机上执行

  1. 开始你的申请
    java -jar myapplication.jar
  2. 启动rmiregistry
    rmiregistry -J-Xbootclasspath/p:$JAVA_HOME/lib/sajdi.jar &
  3. 使用 jps 获取应用程序的 PID(例如 12345)
  4. 将调试恶魔附加到您的应用程序
    jsadebugd 12345 42

在本地主机上执行

  1. 执行jmap
    jmap -heap 42@10.218.72.227

在本地主机上输出

Attaching to remote server 42@10.218.72.227, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.80-b11
Iterating over heap. This may take a while...
Object Histogram:

num #instances #bytes Class description
--------------------------------------------------------------------------
1: 5575 527488 * ConstMethodKlass
2: 5575 493168 * MethodKlass
...

附加说明:手册页指出此实用程序不受支持,在 JDK 的 future 版本中可能可用也可能不可用

也许在远程机器上运行 jmap(例如通过 ssh)会是更好的方法。

关于java - 如何在没有 SSL 的情况下远程使用 jmap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30738519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com