美文网首页JAVA进阶Work, Work~
dump堆内存时遇到的异常 : Unable to open s

dump堆内存时遇到的异常 : Unable to open s

作者: 海边的贝壳林 | 来源:发表于2019-03-04 15:41 被阅读0次

我使用jmap来dump堆内存的时候遇到了下列的错误

[root@node03 ~]# jmap -dump:format=b,file=heap.hprof 9017
9017: Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding

在网上找到原因: 使用jmap dump 堆内存的时候, 要使用运行这个程序的用户去dump, 其他用户不可以的.

所以刚刚那个命令应该是这样的:

[root@node03 ~]# ps -ef| grep 9017
kafka    9017     1  0 Feb12   ?      02:38:07 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/bin/javaxxxxxxxxxx

## 发现是kafka用户启动的程序. 所以下面以kafka用户身份去执行jmap的dump操作.
[root@node03 ~]# sudo -u kafka jmap -dump:format=b,file=heap.hprof 9017

标个重点: sudo -u [user] jmap -dump:format=b,file=heap.hprof [pid]

这里的-dump:format=b,file=heap.hprof可以换成jmap的其他命令, 比如: sudo -u [user] jmap -histo [pid]


下面是我参考的网址答案.

I just found that jmap (and presumably jvisualvm when using it to generate a heap dump) enforces that the user running jmap must be the same user running the process attempting to be dumped.

https://stackoverflow.com/a/27414967/5275545

相关文章

网友评论

    本文标题:dump堆内存时遇到的异常 : Unable to open s

    本文链接:https://www.haomeiwen.com/subject/ausiuqtx.html