由于 groovy 的东西,我们最近一直在为我们的应用程序遭受元空间 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
如果有必要,我可以附上完整的转储文件。但在我看来,它们只是内存块分配地址。