JProfiler:无法检测到远程JVM

时间:2019-09-06 05:00:42

标签: java tomcat java-11 jprofiler

我正在Ubuntu 18.04服务器上以OpenJDK 11运行Tomcat 9(以用户tomcat身份)。我希望能够将JProfiler 11附加到Tomcat进程。

过去,我只使用了通过ssh连接到远程JVM的选项,而JProfiler定位了该进程。在此计算机上,JProfiler从未找到Tomcat进程。

我尝试同时使用susudo选项切换到tomcat用户。我什至直接启用了以tomcat身份登录。无论如何,JProfiler都无法找到JVM进程。

我认为这是因为/tmp/hsperfdata_tomcat文件夹为空。我已经设置了-XX:+UsePerfData,尽管默认情况下应该启用它(尝试JAVA_OPTSCATALINA_OPTS),但这并不能解决任何问题。我已经检查了tomcat命令行,没有禁用UsePerfData的功能。我还监视了文件夹,以查看是否填充了hsperfdata但随后将其删除了-从未创建该文件。

如何在带有OpenJDK 11的Ubuntu 18.04上启用Tomcat 9的性能分析?

更新:

使用以jps -l -m运行的tomcat不返回任何输出。尽管root中没有任何输入,但是以tomcat 的身份运行它会列出/tmp/hsperfdata_tomcat java进程。

1 个答案:

答案 0 :(得分:0)

我刚遇到这个确切的问题。我看不到JVM在tomcat用户下启动:在jprofiler(11)中,通过sudo切换到tomcat用户显示没有JVM。

这是jprofiler上载的权限问题。 jpenable被上传到我的远程主目录下,tomcat无法访问该目录。

解决方案是:

  1. ssh删除节点(与jprofiler将使用的用户相同)
  2. chmod 555 ${HOME}
  3. chmod 555 -R ${HOME}/.jprofiler11。 Tomcat用户需要访问同一目录中的${HOME}/.jprofiler11/agent/11082_11.0.2/jprofiler11/bin/jpenable和jar文件。
  4. 测试:sudo -u tomcat ${HOME}/.jprofiler11/agent/11082_11.0.2/jprofiler11/bin/jpenable

然后,您将能够通过远程ssh + sudo tomcat将笔记本电脑jprofiler连接到该tomcat用户。