即使启用了 NMT,为什么 JCMD 也会抛出“未启用本机内存跟踪”消息?

问题描述 投票:0回答:2

我面临着这个奇怪的问题。我想跟踪 JVM 的本机内存使用情况。我按照Oracle doc中提供的说明进行操作,添加了 NMT 启用标志并回收了 Tomcat JVM。之后,当我尝试使用 JCMD 查看本机内存使用情况时,我收到“本机内存跟踪未启用”消息。你觉得我漏掉了什么吗?

Here is the screen print

java jvm-hotspot
2个回答
2
投票

设置-XX:NativeMemoryTracking =详细信息


1
投票

我也遇到了同样的问题。假设您在类似 linux 的操作系统(例如 RHEL)中遇到过此问题;出现此问题的原因是,出于安全原因,操作系统不允许除与 java 进程关联的用户 ID 之外的任何用户 ID 连接到 jvm。我必须以进程用户身份使用 jcmd 命令执行 sudo 。就我而言,tomcat-service 以“userXXX”用户身份执行。当我执行下面的 cmd 时,我能够从 java 进程获得响应。 sudo -u userXXX jcmd {pid} VM.native_memory 摘要规模=KB

© www.soinside.com 2019 - 2024. All rights reserved.