【问题标题】:PermGenSpace Error on Weblogic 12cWeblogic 12c 上的 PermGenSpace 错误
【发布时间】:2015-11-17 16:30:50
【问题描述】:

我的问题是我有一个 Weblogic 12c,当我尝试分析我网站上的数据时,数据太大以至于它给了我 PermGenSpaceError。好吧,我的问题是我能做些什么来解决它,因为它发生在我分析总内存超过 8060576 的大数据时,因为那是我来自服务器的所有内存 RAM 以及我该怎么做。如果您能给我一个教程或视频,我将非常感激,因为我在这个问题上搜索了一天,仍然没有答案。

非常感谢, 弗拉德。

【问题讨论】:

  • 如果我正确理解您的问题,您需要增加分配的内存量以避免 PerGenSpaceError。你做到了吗?
  • 问题是我增加了分配给计算机上所有可用内存的内存,当我让它分析一个巨大的文件(例如 4 TB)时,它会给我 PerGenSpaceError。
  • 只是为了确定 - 你增加了什么内存?堆大小?还是烫发?

标签: java jakarta-ee weblogic weblogic12c


【解决方案1】:

对运行基于 Java 的应用程序时的工作原理有所了解。您的应用程序已编译(设置类等),它们由代表 Java 虚拟机的 JVM 运行。

Java 虚拟机内存由区域组成。存储变量和方法的堆栈区域和存储其他所有内容的堆空间区域。 Java 堆空间再次被构建在称为世代的不同区域中,并且对象的存储位置取决于对象的生存时间。

现在您知道 PermGenSpace(永久代空间)的来源了。

在您的情况下,您需要增加 PermGenSpace 内存的大小,以使您的应用程序能够处理大量数据。 stackoverflow 中有很多答案可以教你如何做到这一点,如下所示:

  1. Dealing with "java.lang.OutOfMemoryError: PermGen space" error
  2. Weblogic increase memory
  3. facing perm gen space error in weblogic
  4. Oracle help centre - tunning Java Virtual Machine
  5. WebLogic PermnGenSpace Settings
  6. 更多关于 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 监控其性能。

【讨论】:

  • 问题是我增加了分配给计算机上所有可用内存的内存,当我让它分析一个巨大的文件(例如 4 TB)时,它会给我 PerGenSpaceError。
  • 您的操作系统和其他各种正在运行的进程也会使用可用内存,因此,内存被分配给操作系统、进程和您的应用程序。我建议您运行 Java Visual VM 以了解您的应用程序在处理大型数据集时消耗了多少内存?有多少内存可供使用?如果可用的内存较少,那么内存升级是必不可少的,如果有更多可用但应用程序不使用它,那么您需要调整应用程序的配置以使用更多内存。试试 Java Visual VM 你会有一个想法。
猜你喜欢
  • 2014-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-03
  • 1970-01-01
  • 2013-05-31
  • 1970-01-01
  • 2014-09-23
相关资源
最近更新 更多