gpt4 book ai didi

java - visualvm 可以通过 JMX 自动连接到远程进程吗?

转载 作者:搜寻专家 更新时间:2023-10-30 21:27:08 26 4
gpt4 key购买 nike

我有一个在远程机器上运行的 Java 进程,该进程设置了一些 mbean。我还有 jstatd 以与 Java 进程相同的用户身份在该机器上运行。 (可以通过编程方式或使用 -Dcom.sun.management.jmxremote... 等设置 mbean,这似乎没有什么区别)。

VisualVM 能够与它自动发现的进程建立 jstatd 连接,但这意味着我无法访问 mbean 或 CPU 历史图表等。或者,我可以创建一个显式 JMX 连接,这为我提供了通常范围内的有用工具,但我希望应用程序在启动时分配一个随机 JMX 端口,此配置不能是静态的。

有没有办法让 VisualVM 通过 JMX 自动连接到我的进程?这将需要它自动发现 JMX 端口,但我认为 jstatd 可以做到这一点。有谁知道 visualvm 的任何插件可以自动执行此操作?

最佳答案

遗憾的是,无法将随机 JMX 端口分配给远程应用程序。您可以使用

启动您的远程应用程序
-Dcom.sun.management.jmxremote.port=<fixed port>
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

并且 VisualVM 将能够通过 Jvmstat 读取此配置(由 jstatd 提供)并自动打开与远程应用程序的 JMX 连接。因此,您需要为远程应用程序分配固定端口。一旦你有了它,一切都会正常工作,VisualVM 会自动通过 JMX 连接到你的应用程序(事实上,它会结合来自 Jvmstat 和 JMX 的数据)。

关于java - visualvm 可以通过 JMX 自动连接到远程进程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3892084/

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