为什么我不能将 jvisualvm 附加到从 osx 内部启动的 tomcat 实例?
我从 netbeans 内部启动 tomcat。我想监视该 tomcat 实例上的堆使用情况,因此我启动了 jVisualVM。但未列出该过程。有什么想法吗?
I'm starting tomcat from inside netbeans. I'd like to monitor the heap usage on that instance of tomcat so I fire up jVisualVM. However the process isn't listed. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您使用的是 Java 版本 6u24 吗?那么您可能会成为此错误的受害者,该错误将在 6u25 中修复(在简而言之,jVisualVM 找不到您的进程的 hsperfdata)。
否则,您必须通过 JMX 启用监控:
将以下 JVM 参数传递给 Tomcat:
然后通过 File -> 添加远程进程到 jVisualVM添加 JMX 连接。您可以使用端口 8888 连接到进程
jVisualVM 还有一些其他问题,例如启动 jVisualVM 的用户需要与拥有您要监视的进程的用户相同(尽管,我不认为这是您的问题)。请参阅此处了解更多信息。
Are you using Java version 6u24? Then you may fall victim to this bug which will be fixed in 6u25 (in a nutshell, jVisualVM can't find your process' hsperfdata).
Otherwise, you have to enable monitoring via JMX:
Pass the following JVM parameters to Tomcat:
Then add the remote process to jVisualVM via File -> Add JMX Connection. You can connect to the process using port 8888
jVisualVM has some other gotchas, e.g. the user starting jVisualVM needs to be the same as the user owning the process you want to monitor (although, I don't think this is your issue). See more here.