我想转储应用服务器的Permgen。
我不想使用-XX:+TraceClassLoading -XX:+TraceClassUnloading,因为我不想重启服务器,我也不想使用jconsole。
我有像jmap(用于堆转储)这样的工具来获取permgen,这样我就只能提供pid了。
发布于 2011-05-26 03:59:13
jmap -permstat <pid>将产生如下输出:
30337 intern Strings occupying 2746200 bytes.
class_loader classes bytes parent_loader alive? type
<bootstrap> 2031 7253392 null live <internal>
0x517474f0 1 1760 null dead sun/reflect/DelegatingClassLoader@0x43f95d38
0x4f83f670 1 1744 0x4ebfb8e8 dead sun/reflect/DelegatingClassLoader@0x43f95d38
[...]
total = 287 10020 35889952 N/A alive=3, dead=284 N/A 这不是完全转储,但这样做将允许您进行一些调查。
我仍然在寻找如何找到更多的信息。
发布于 2010-12-17 23:37:41
不可能像对堆所做的那样“转储permgen”。
除了其他人介绍的jmap -permstat之外,您还可以分析标准堆转储,以了解this blog entry: 'The Unknown Generation: Perm'中描述的永久生成。
因为堆转储实际上并不包含大量关于perm空间的信息,所以很难处理perm问题。最近,我发现了Sporar,Sundararajan和Kieviet写的一篇很棒的文章。作者对永久一代进行了一些阐述。当然,我必须立即检查是否以及如何使用Eclipse Memory Analyzer来分析这个“未知”代。这就是这个博客的目的。
发布于 2010-11-03 01:48:54
jmap -permstat <pid>https://stackoverflow.com/questions/4080010
复制相似问题