捕获 tomcat 转储时出现“内存不足或附加权限不足”

Posted

技术标签:

【中文标题】捕获 tomcat 转储时出现“内存不足或附加权限不足”【英文标题】:"Insufficient memory or insufficient privileges to attach " when capture the tomcat dump 【发布时间】:2016-11-02 02:25:12 【问题描述】:

我尝试使用 jmap 捕获 tomcat 进程转储,但是我收到错误“内存不足或附加权限不足”,显然有足够的内存,并且当前登录用户在角色本地管理员组中。如果我以管理员身份运行 cmd 命令,它仍然失败。

C:\Program Files\Java\jdk1.7.0_71\bin>jmap.exe -dump:format=b,file=d:\temp\HeapD
ump.hprof 30452
30452: Insufficient memory or insufficient privileges to attach
The -F option can be used when the target process is not responding

【问题讨论】:

您是否尝试过使用 -F 选项?您是否以与 Tomcat 相同的用户身份运行 jmap? 我之前在 tomcat 中看到过这个错误。看到这个***.com/questions/20149635/… Jstack and Not enough storage is available to process this command的可能重复 【参考方案1】:

我遇到了一个类似的场景,我们正在运行一个打包为 Windows 服务的码头服务器,我想对其进行内存转储。我认为 SO 其他地方的大多数答案都涉及您要转储的进程未作为 Windows 服务运行的情况。这link 帮助了。

下载PsExec并像这样运行jmap:

<path to psexec>PsExec.exe -s "C:\Program Files\Java\jd k1.8.0_131\bin\jmap.exe" -dump:file=<filename> <processid>

【讨论】:

以上是关于捕获 tomcat 转储时出现“内存不足或附加权限不足”的主要内容,如果未能解决你的问题,请参考以下文章

为啥在构建 Android 11 时出现非法指令(核心转储)错误?

导入大 sql 转储时出现 PHPMYADMIN 错误

使用 VisualVm 分析堆转储时出现内存不足错误

创建多个矩阵时出现分段错误(核心转储)

转储 Json 数据时出现 Apache Pig 错误

尝试执行茎文件时出现分段错误(核心转储)