我的问题是我有一个 Weblogic 12c,当我尝试分析我网站上的数据时,数据太大,导致出现 PermGenSpaceError 错误。好吧,我的问题是我能做些什么来修复它,因为它发生在我分析总内存超过 8060576 的大数据时,因为这是我来自服务器的所有内存 RAM 以及我该怎么做。如果您能给我一个教程或视频,我将非常感激,因为我在这个问题上搜索了一天多,但仍然没有答案。
非常感谢, 弗拉德。
最佳答案
关于运行基于 Java 的应用程序时事情如何工作的一些见解。您的应用程序已编译(设置类等),并且由代表 Java 虚拟机的 JVM 运行。
Java虚拟机内存由区域组成。存储变量和方法的堆栈区域以及存储其他所有内容的堆空间区域。 Java 堆空间再次被构造在不同的区域(称为代)中,对象的存储位置取决于对象的生存时间。
现在您知道 PermGenSpace(永久代空间)从何而来。
就您的情况而言,您需要增加 PermGenSpace 内存的大小,以使您的应用程序能够处理大量数据。 stackoverflow 中有大量答案可以教您如何做到这一点,如下所列:
- Dealing with "java.lang.OutOfMemoryError: PermGen space" error
- Weblogic increase memory
- facing perm gen space error in weblogic
- Oracle help centre - tunning Java Virtual Machine
- WebLogic PermnGenSpace Settings
- 有关 PermnGen 及其原因的更多信息 here
还有更多外部链接可以帮助您了解如何设置 PermGenSpace 内存。
在结束之前,我想提一下另一个很棒的工具,您可以使用它来了解您的 weblogic 实例的行为方式。 Java Visual VM允许您监控应用程序如何使用 Java 堆空间、处理器、网络等资源。 Java Visual VM 安装后,会检测正在运行的基于 java 的应用程序(本地 - 您还可以设置 Java Visual VM 以使用 RMI 监视远程服务器)并向您显示 VM 的详细信息、分配给 Java 堆空间的现有内存量、应用程序使用的数量、计算机的最大内存等。
我在分析图像文件 (6 GB) 大小时遇到了图像管理应用程序的问题。我发现的问题基本上是图像管理应用程序没有正确收集垃圾,Java Visual VM 帮助我发现了这个问题。
因此,我建议下载并安装 Java Visual VM,运行您的应用程序,然后查看内存和其他资源的使用情况。如果 Java 堆空间确实内存不足,那么您可以使用上面的链接增加大小,然后重新运行应用程序并使用 Java Visual VM 监视其性能。
关于java - Weblogic 12c 上的 PermGenSpace 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33762184/