VisualVM 无法采样器内存

2022-09-01 16:12:26

我有一个配置了JMXRemote参数的tomcat实例。本地 VisualVM 能够在 CPU 上获取采样器,但不能用于内存。内存按钮灰显,摘要显示:“内存采样:不可用。无法连接到目标应用程序。确保应用程序在受支持的 JDK 6 或 JDK 7 上运行

JMXRemote 参数:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

Tomcat JDK 版本:

JDK1.6.0.30

VisualVM version:

Version: 1.6.0_30 (Build 1320-110325); platform 110131-9c8b3bfb3a1e
System: Windows Server 2008 R2 (6.1) , amd64 64bit
Java: 1.6.0_30; Java HotSpot(TM) 64-Bit Server VM (20.5-b03, mixed mode)
Vendor: Sun Microsystems Inc., http://java.sun.com/
Environment: Cp1252; en_US (visualvm)
Userdir: C:\Users\Administrator\AppData\Roaming\.visualvm\7
Clusters: C:\Program Files\Java\jdk1.6.0_30\lib\visualvm\platform
C:\Program Files\Java\jdk1.6.0_30\lib\visualvm\visualvm
C:\Program Files\Java\jdk1.6.0_30\lib\visualvm\profiler

雄猫版:

Tomcat 6.0.32

我在win server 2008上运行VisualVM和Tomcat。我做错了什么?


答案 1

我以前也有同样的问题。你一定是从jvisualvm首页下载了这个版本,对吧?别这样!如果您使用新的 jdk 1.7,VisualVM 已经打包在 jdk 文件夹中。使用此版本,您将不会遇到内存示例的任何问题。


答案 2

这篇博客文章使我相信JVisualVM和Tomcat的临时目录需要相同才能使内存采样正常工作。帖子的评论之一:

临时目录必须设置为 JVisualVM 使用的目录,可以从 VisualVM 系统属性选项卡 (java.io.tmpdir) 中发现该目录。一旦我正确设置了CATALINA_TMPDIR目录,这工作得很好。


推荐