8java进程上使用jdk-11运行jcmd未成功运行

ds97pgxw  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(525)

我试图使用jcmd监视tomcat的本机内存,但出现以下异常:command: jcmd 14533<pid of tomcat> VM.native_memory summary 我已经安装了2个
jdk's jdk-11 以及 jdk-8 .
汤姆猫跑过去了 jdk-8 使用jcmd jdk-11 然后我得到了以下例外:

com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file /proc/31752/root/tmp/.java_pid31752: target process 31752 doesn't respond within 10500ms or HotSpot VM not loaded
    at jdk.attach/sun.tools.attach.VirtualMachineImpl.<init>(VirtualMachineImpl.java:100)
    at jdk.attach/sun.tools.attach.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:58)
    at jdk.attach/com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:207)
    at jdk.jcmd/sun.tools.jcmd.JCmd.executeCommandForPid(JCmd.java:114)
    at jdk.jcmd/sun.tools.jcmd.JCmd.main(JCmd.java:98)

我注意到了 -XX:+StartAttachListener 但它不起作用。

jhkqcmku

jhkqcmku1#

这可能是一个用户权限问题:jmap必须与java进程使用相同的用户运行。e、 g.如果所有者是 usera 这是在一个docker中运行的,docker包含以用户身份执行jmap usera ```
docker exec --user usera -it container_id jmap -dump:format=b,file=/home/usera/memorydump.bin 1

相关问题