Jvm 如何卸载Permgen?
我想转储应用服务器的Permgen 我不想使用Jvm 如何卸载Permgen?,jvm,profiling,permgen,Jvm,Profiling,Permgen,我想转储应用服务器的Permgen 我不想使用-XX:+TraceClassLoading-XX:+TraceClassLoading,因为我不想重新启动服务器,也不想使用jconsole 我没有像jmap(用于堆转储)这样的工具来获取permgen,因此我只能提供pid jmap-permstat jmap -permstat <pid> 无法“转储permgen”,因为它是针对堆执行的 除了其他人已经介绍的jmap-permstat之外,您还可以分析标准堆转储,以了解永久生成,
-XX:+TraceClassLoading-XX:+TraceClassLoading
,因为我不想重新启动服务器,也不想使用jconsole
我没有像jmap
(用于堆转储)这样的工具来获取permgen,因此我只能提供pid
jmap-permstat
jmap -permstat <pid>
无法“转储permgen”,因为它是针对堆执行的
除了其他人已经介绍的jmap-permstat
之外,您还可以分析标准堆转储,以了解永久生成,如中所述
因为堆转储实际上并不包含很多关于perm空间的信息,所以perm问题很难解决。最近,我发现了Sporar、Sundararajan和Kieveian的这篇伟大的文章。作者们对永久的一代人有了一些了解。当然,我必须立即检查是否以及如何使用Eclipse内存分析器来分析这一“未知”代。这就是这个博客的内容
jmap-permstat
将产生如下输出:
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
30337个内部字符串,占2746200字节。
类\u加载器类字节父级\u加载器是否活动?类型
2031 7253392空活
0x517474f0 1 1760零死太阳/反射/DelegatingClassLoader@0x43f95d38
0x4f83f670 1 1744 0x4ebfb8e8死光/反射/DelegatingClassLoader@0x43f95d38
[...]
总计=287 10020 35889952 N/A存活=3,死亡=284 N/A
这不是一个完整的转储,但这样做将允许您进行一些调查
我仍在寻找如何找到更多信息。这有助于您解决问题吗?Vikas?我之前尝试过这一点,它表示该选项无效,并显示用法,其中仅显示-histo和-dump(堆转储)允许。我正在jdk/bin中使用jmap这是正确的吗
permstat
选项在MS Windows上不可用。
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