我正在使用jdk64
,我的Java版本是1.6.0_24
。 我在Windows Server 2008上以管理员身份运行Tomcat Java进程和VisualVM进程。
Tomcat正在使用-Xmx7196m
,而jvisualvm
正在使用-Xms24m
和-Xmx256m
。 这可能是原因吗?
我正在使用jdk64
,我的Java版本是1.6.0_24
。 我在Windows Server 2008上以管理员身份运行Tomcat Java进程和VisualVM进程。
Tomcat正在使用-Xmx7196m
,而jvisualvm
正在使用-Xms24m
和-Xmx256m
。 这可能是原因吗?
您需要添加JMX
参数以启用与您的应用程序的JMX
连接,请添加以下参数:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=8484
-Dcom.sun.management.jmxremote.ssl=false
接下来需要手动添加你的Tomcat进程,在本地主机节点上右键 -> 添加JMX连接 -> 输入端口号 -> 确定
。
这样,你的Tomcat进程就会出现在本地主机节点下列表中。
C:\Users\kuldeep\AppData\Local\Temp\visualvm.dat\localhost_PID
目录。我可以更改此位置吗?我的 C:\
驱动器没有足够的空间。 - Kuldeep JainVisualVM无法找到Java的原因是由于操作系统进程权限。
如果您使用与Java应用程序相同的用户和安全上下文启动VisualVM,则会看到它:VisualVM将获得对套接字、/proc
文件系统等的访问权限...
为了解决操作系统安全问题,您可以通过附加sys属性来公开您的Java应用程序:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=[...PORT...]
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=localhost
java.rmi.server.hostname
是一项重要的安全措施,可防止外部连接到您的应用程序 JMX。如果您需要远程连接,只需通过 SSH 隧道 传递端口即可。
我们的应用服务器是 JBOSS 6.1.0.final,当在 run.conf.bat 文件中添加以下行时,服务器本身无法启动:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=8484
-Dcom.sun.management.jmxremote.ssl=false