Vik*_*ana 22 profiling jvm permgen
我想把应用服务器的Permgen转储.
我不想使用,-XX:+TraceClassLoading -XX:+TraceClassUnloading因为我不想重新启动服务器,我也不想使用jconsole.
我有任何工具jmap(用于堆转储没有找到permgen的任何选项)来获得permgen,以便我只能提供pid.
Gui*_*oté 17
jmap -permstat <pid>
Run Code Online (Sandbox Code Playgroud)
将产生这样的输出:
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
Run Code Online (Sandbox Code Playgroud)
这不是一个完整的转储,但这样做可以让你做一些调查.
我仍然在寻找如何找到更多信息.
fgl*_*lez 12
它不可能像堆一样'转储permgen'.
除了jmap -permstat正如其他人所介绍的那样,您可以分析标准堆转储,以便为您的永久生成提供一些信息,如本博客文章中所述:"未知世代:烫发".
由于堆转储实际上并不包含有关perm空间的大量信息,因此很难解决perm问题.最近,我发现了Sporar,Sundararajan和Kieviet的这篇精彩文章.作者对永久性一代有所了解.当然,我必须立即检查是否以及如何使用Eclipse Memory Analyzer来分析这个"未知"代.这就是这个博客的内容.