使用visualvm远程分析neo4j

时间:2019-03-21 20:14:36

标签: java ubuntu neo4j visualvm jstatd

我正在尝试使用VisualVM从本地笔记本电脑监视GC信息,并连接到运行ubuntu 16的远程EC2实例上在Oracle JDK 8上运行的Neo4j(企业)应用程序。我能够使用JMX连接进行连接,但问题是我可以在VisualGC(插件)上看不到任何东西。该消息是“此JVM不支持”。

基于此linklink,我在遥控器上运行了jstatd命令,但这并不能解决问题。接下来,查看此link,我以jstatd用户的身份运行neo4j,因为这是运行Neo4j服务的用户。如果我以jstatd用户身份运行ubuntu,则以下命令有效,但在VisualGC上不显示任何数据。

sudo -u neo4j jstatd -p 8888 -J-Djava.security.policy=/home/ubuntu/tools.policy -J-Djava.rmi.server.hostname=neo4j_ip_address

neo4j用户的身份运行上述命令时出现此错误:

Could not create remote object access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write") java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
        at java.security.AccessController.checkPermission(AccessController.java:884)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
        at java.lang.System.setProperty(System.java:792)
        at sun.tools.jstatd.Jstatd.main(Jstatd.java:139)

这些是对tools.policy文件的正确权限吗?

-rwxr-xr-x 1 neo4j  adm    112 Mar 21 15:41 tools.policy

tools.policy的内容:

grant codebase "file:/usr/lib/jvm/java-8-oracle/lib/tools.jar" {
   permission java.security.AllPermission;
};

如何使VisualGC在这种情况下工作?是否有任何日志供VisualVM知道发生了什么事?我还可以使用其他工具直观地查看GC统计信息吗?任何帮助深表感谢。谢谢。

1 个答案:

答案 0 :(得分:0)

如果尝试以完整路径运行jstatd,会发生什么情况?

sudo -u neo4j /usr/lib/jvm/java-8-oracle/bin/jstatd -p 8888 -J-Djava.security.policy=/home/ubuntu/tools.policy -J-Djava.rmi.server.hostname=neo4j_ip_address