jmap dump提示well-known file is not secure

2022-05-20 08:26:54 浏览数 (1)

最近在排查jvm相关的问题时候,使用到了jmap工具,在使用过程中遇到了以下问题:

1. 当使用jmap -heap pid查询内存状况的时候,提示cannot open binary file,如下图所示:

2. 当使用jmap -dump:format=b,file=/tmp/online.bin pid的时候,提示“35322: well-known file is not secure”,其中35322为进程id。执行jstack -l pid的时候,错误也是一样的。

在网上查询发现,解决方案主要分为以下三种:

  1. 执行命令的用户与启动进程的用户不同,可以通过ps命令或者/tmp/hsperfdata_user/pid文件来确认;
  2. 执行命令的jdk与启动进程的jdk不同;
  3. 反复重试;

经过排查确认:1)是同一个用户,没有其他用户操作;2)jdk环境也只有一个;3)重试n次无效;

最后经过折腾发现如下方案可行:

1)申请root用户权限;

2)在root用户下执行:

代码语言:javascript复制
$JAVA_HOME/bin/jstack -F pid
$JAVA_HOME/bin/jmap -F -dump:format=b,file=/tmp/online.bin pid

不会再出现上述的错误,问题解决。一定要保证JAVA_HOME是启动jvm时用的java环境,否则可能会出现问题。

0 人点赞