由于令人讨厌的东西,我们最近在我们的应用程序中遇到了元空间OOM,但是,我设法缓存了已编译的脚本以阻止它立即发生。
以前,该进程每天至少崩溃一次。自从我应用此修复程序以来,它至少已经运行了至少4天。为了再次确定该修复程序确实有效,我使用 jcmd Metaspace.dump
转储了该元空间。但是,我在读取元空间转储时遇到问题,我认为关键信息在下面粘贴的头部。我不知道类空间和非类空间之间的区别以及我的进程已提交多少元空间。因此,这里需要帮助,谢谢!!
Dump Reason : JCMD
MaxMetaspaceSize : 536870912 B
CompressedClassSpaceSize : 528482304 B
Class Space Used : 21412264 B
Class Space Capacity : 25373696 B
Class Space Committed : 44572672 B
Class Space Reserved : 1073741824 B
NonClass Spaces Used : 178477376 B
NonClass Spaces Capacity : 219028480 B
NonClass Spaces Committed : 347594752 B
NonClass Spaces Reserved : 348127232 B
如有必要,我可以附加完整的转储文件。但是在我看来,它们只是内存块分配地址。