java - Java VisualVM 中的 Visual GC 通过 jstadt 用于远程 Tomcat

标签 java tomcat garbage-collection jvisualvm jstatd

我正在尝试使用 Java VisualVM 中的 Visual GC 来获取远程 Tomcat 的内存布局。 在托管 Tomcat jstatd 的 Linux 服务器上运行(包括 tools.policy 和正确的 [-J]-Djava.rmi.server.hostname=[SERVER_IP],可在Tomcat 的 jvm 选项也是如此)。
从 VisualVM 到 server/jstatd 的连接工作正常:

Connection tree of jvisualVM

但我在 Jstatd 连接的 Visual GC 选项卡中只能看到 Jstatd JVM 本身的内存详细信息,而不是 Tomcat 的数据。
编辑: 在 Tomcat 连接 (prod apl01 jmx) 的 Visual GC 选项卡中,我被告知:“此 JVM 不支持” 使用我们内部运行的系统对此进行测试,我在这里获得了正确的数据。

远程 Tomcat 使用它自己的用户“tomcat”运行。 jstatd 也必须由该用户启动吗? 或者我可能遗漏了另一个问题?

任何可行的替代方案(例如提供与下面类似的可视化效果的另一种可视化工具)都是绝对可以接受的。 我们也使用 Yourkit,但我在其中找不到任何类似于 Visual GC 易于理解的风格。
Visual GC memory layout visualization

最佳答案

对我们的区域设置开发环境进行了更多研究和测试后,我意识到我们在生产环境上没有正确的权限。 所以我要求管理员将 jstatd 添加到 sudoers 列表中,瞧,它按预期工作:

sudo/usr/java/latest/bin/jstatd -J-Djava.security.policy=/home/empulse/tools.policy -J-Djava.rmi.server.hostname=[SERVER_IP]

关于java - Java VisualVM 中的 Visual GC 通过 jstadt 用于远程 Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18490027/

相关文章:

java - 在 Azure VM 上使用 NGINX 对其他 Azure VM 进行负载平衡

java - 适用于 HTML 的 Java 最佳 DOM API

tomcat - mod_jk 帮助 ubuntu 服务器 9.04 上的 apache2 tomcat6 和 railo3

java - Tomcat v7.0 无法从 Eclipse Jee Neon 中启动

.net - 有时是否必须使用 COM 对象显式调用 gc.collect

java - Java 8 中默认的 Full GC 间隔是多少

java - 在 GWT 中编程时使用 OOP?

java - 是否有 API/LIB 可以删除 JavaBackend 中的 JavaScript?

spring - 无法使用 Spring 和 Tomcat 启用 CORS

java - 为什么幻影引用在排队时没有被清除?