【发布时间】:2019-03-21 20:14:35
【问题描述】:
我正在尝试使用本地笔记本电脑上的 VisualVM 监控 GC 信息,并连接到在运行 ubuntu 16 的远程 EC2 实例上运行在 Oracle JDK 8 上的 Neo4j(企业)应用程序。我可以使用 JMX 连接进行连接,但问题是我可以'不要在 VisualGC(插件)上查看任何内容。消息是“此 JVM 不支持”。
基于此link 和link,我在遥控器上运行了jstatd 命令,但这并没有解决问题。接下来,查看这个link,我将jstatd 运行为neo4j 用户,因为这是运行Neo4j 服务的用户。如果我以ubuntu 用户身份运行jstatd,则以下命令有效,但不会在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 统计信息吗?任何帮助深表感谢。谢谢。
【问题讨论】:
标签: java ubuntu neo4j visualvm jstatd