我的问题是我有一个Weblogic 12c,当我尝试对我的网站上的数据进行分析时,数据太大了,它给了我PermGenSpaceError。好吧,我的问题是我该怎么做才能解决它,因为它发生在我分析总内存超过8060576的大数据时,因为这是我服务器的所有内存RAM以及我该怎么做。如果你可以给我一个教程或视频,我将非常优雅,因为我搜索了一天这个问题,我仍然没有答案。
非常感谢, 维拉德。
答案 0 :(得分:1)
了解运行基于java的应用程序时的工作原理。您的应用程序已编译(设置类等),它们由代表Java虚拟机的JVM运行。
Java虚拟机内存由区域组成。存储变量和方法的堆栈区域以及存储其他所有内容的堆空间区域。 Java堆空间再次在称为代的不同区域中构建,并且存储对象的位置取决于对象的生存时间。
现在您可以了解PermGenSpace(永久代空间)的来源。
在您的情况下,您需要增加PermGenSpace内存的大小,以便您的应用程序能够处理大量数据。 stackoverflow中有大量的答案可以教你如何做到这一点,如下所示:
还有更多的外部链接可以帮助您设置PermGenSpace内存。
在结束之前,我想提一下可以用来了解weblogic实例行为的另一个很棒的工具。 Java Visual VM允许您监视应用程序如何使用Java堆空间,处理器,网络等资源。安装Java Visual VM后,检测正在运行的基于java的应用程序(本地 - 您还可以使用RMI设置Java Visual VM来监视远程服务器)并显示VM的详细信息,即为Java堆空间分配的现有内存量,应用程序使用的数量,计算机的最大内存等。
在分析大小的图像文件(6 GB)时,我遇到了图像管理应用程序的问题。我发现的问题基本上是图像管理应用程序没有正确收集垃圾,Java Visual VM帮助我发现问题。
所以我建议,下载并安装Java Visual VM,运行您的应用程序,然后查看您的内存和其他资源的使用方式。如果Java堆空间确实耗尽了内存,那么您可以使用上面的链接增加大小,然后重新运行应用程序并使用Java Visual VM监视其性能。