【问题标题】:Out of Memory : Perm Gen Space [duplicate]内存不足:Permgen 空间 [重复]
【发布时间】:2013-03-14 11:55:38
【问题描述】:

我有一个out of space : perm gen 错误,我不知道该怎么办。我正在使用 apache tomcat,但我没有完全访问服务器的权限。

【问题讨论】:

  • 给我们看一些代码,异常跟踪什么的。
  • 别告诉我 Google 没有显示 Out of Memory: Perm Gen Space 的任何结果!
  • 基本上有两种通用方法:1.减少内存消耗,2.增加内存容量
  • 这是 Tomcat 的一个长期存在的错误,最近的版本终于修复了。因此,您可能使用的是旧版本的 Tomcat。该问题与位于静态变量中的内存有关,这些变量在 servlet 的启动和停止之间不会被释放。因此,除非您对静态变量做一些疯狂的事情,否则请更新 Tomcat。如果你不能,那么每次收到错误时都必须退回 Tomcat。

标签: java tomcat permgen


【解决方案1】:

这表明内存泄漏*导致 Java 在 Perm Gen 中创建太多对象,这是为非常长寿命(永久)内存保留的内存部分。如果您没有对服务器的完全访问权限,要么 a) 不是您的问题,您应该通知系统管理员,或者 b) 您的代码有问题,如果您不显示,我们将无法帮助您你在做什么。

如果您不确定是 a) 还是 b),请尝试恢复您的更改/看看是否有其他人遇到同样的问题。如果无论您看到什么错误,它都是 a)。如果您能够通过删除代码来阻止此错误,那就是 b)。

*您可能做的一切都完全正确,只需要增加您服务器上的 PermGen 设置,但正如您所说,这不是您的机器,这似乎不太可能是解决方案。

【讨论】:

  • 不一定表示“泄漏”;完全有可能正在执行的代码只需要比默认 MaxPermSize 更多的资源。
【解决方案2】:

你可以使用:

-XX:MaxPermSize=128m 来增加空间。但这通常只会推迟不可避免的事情。

您还可以启用 PermGen 进行垃圾回收

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 2023-03-08
    相关资源
    最近更新 更多