[英]JProfiler: Cannot detect remote JVM
我在 Ubuntu 18.04 服务器上使用 OpenJDK 11 运行 Tomcat 9(作为用户tomcat
)。 我希望能够将 JProfiler 11 附加到 Tomcat 进程。
过去,我只是使用了通过 ssh 连接到远程 JVM 的选项,而 JProfiler 会定位该进程。 在这台机器上,JProfiler 永远找不到 Tomcat 进程。
我尝试使用su
和sudo
选项切换到tomcat
用户。 我什至直接以tomcat
身份启用登录。 无论如何,JProfiler 都无法定位到 JVM 进程。
我认为这是因为/tmp/hsperfdata_tomcat
文件夹是空的。 我已经设置了-XX:+UsePerfData
即使它应该默认启用(尝试JAVA_OPTS
和CATALINA_OPTS
),但这并没有解决任何问题。 我检查了 tomcat 命令行,没有什么可以禁用UsePerfData
。 我还监视了该文件夹,以查看hsperfdata
是否以某种方式填充但随后被删除 - 从未创建该文件。
如何在带有 OpenJDK 11 的 Ubuntu 18.04 上使用 Tomcat 9 启用分析?
更新:
使用jps -l -m
作为tomcat
运行不会返回任何输出。 然而,以root
身份运行它确实列出了tomcat
java 进程,尽管/tmp/hsperfdata_tomcat
没有条目。
我刚刚遇到了这个确切的问题。 我无法看到 JVM 在 tomcat 用户下启动:在 jprofiler (11) 中,通过 sudo 切换到 tomcat 用户显示没有 JVM。
这是jprofiler上传的权限问题。 jpenable 上传到我的远程主目录下,tomcat 无法访问。
解决方案是:
chmod 555 ${HOME}
chmod 555 -R ${HOME}/.jprofiler11
。 Tomcat 用户需要访问同一目录下的${HOME}/.jprofiler11/agent/11082_11.0.2/jprofiler11/bin/jpenable
和 jar 文件。sudo -u tomcat ${HOME}/.jprofiler11/agent/11082_11.0.2/jprofiler11/bin/jpenable
然后您就可以通过远程 ssh + sudo tomcat 将您的笔记本电脑 jprofiler 连接到该 tomcat 用户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.