我正面临这个奇怪的问题。我想跟踪 JVM 的本机内存使用情况。我按照Oracle doc中提供的说明,添加了 NMT 启用标志并回收了 Tomcat JVM。之后,当我尝试使用 JCMD 查看本机内存使用情况时,我收到“未启用本机内存跟踪”消息。你认为我错过了什么吗?
问问题
4710 次
2 回答
1
我遇到了同样的问题。假设您在 linux-like-OS(例如 RHEL)中遇到过这个问题;出现此问题是因为操作系统出于安全原因,不允许除与 java 进程关联的用户 ID 之外的任何用户 ID 连接到 jvm。我必须以进程用户身份使用 jcmd 命令执行 sudo。在我的例子中,tomcat 服务作为“userXXX”用户执行。当我执行下面的 cmd 时,我能够从 java 进程中得到响应。sudo -u userXXX jcmd {pid} VM.native_memory 摘要 scale=KB
于 2020-07-17T13:11:04.560 回答
0
设置 -XX:NativeMemoryTracking=detail
于 2022-01-27T10:31:53.430 回答