问题标签 [permgen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2254 浏览

tomcat - JAXB - Tomcat 服务器上的 permGen 错误

运行已部署的应用程序时出现以下错误。通过错误,似乎是 JAXB 造成的。请建议。

0 投票
4 回答
8592 浏览

java - 在大约 110 个用户连续运行两天后,Java 服务器 cpu 使用率达到 100%

我有一个 tomcat 6.0.20,apr 1.2,jdk 1.6.0_15,mysql 5.1.38 在 4 GB ram 的 rhel 盒子上运行。上面有一个简单的 jsp/servlet 应用程序,有 5 个用户,一个 struts 1.2.0.9 有 64 个用户,一个 struts 2.0 应用程序有 35 个用户。struts 2.0 用户每秒输入一个条目,一天大约有 900 个条目。我还在最后两个应用程序中使用 toplink 进行持久性。我已在代码中将所有非引用对象声明为 null,并为来自 struts 2 站点和 tomcat 站点的配置文件应用了生产值。在mysql中应用线程缓存,将wait_timeout和interactive_timeout减少到相当于tomcat的会话超时。增加了linux中的文件描述符。重做查询。检查线程转储,查看 gc 统计信息,在此基础上应用上述更改,

YET 仍然面临“java.lang.OutOfMemoryError”错误。

在不同的时间它用于不同的事物,有时它的 Servlet.service(),有时它的 image.servlet,有时它导致它的 jasper。

非常令人沮丧,因为错误不是恒定的,而是随着时间的推移不断变化

任何帮助,将不胜感激!!!

JAVA_OPTS=-server -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+CMSParallelRemarkEnabled (tomcat manager 报告 34 mb empty 所以没有使用 permsize, mx 和 mn 等)

持久性.xml

服务器.xml

上下文.xml

0 投票
3 回答
443 浏览

function - Scala 中的 First-class 函数是否会成为在 JVM 中分配大型 PermGen 空间的问题?

关于Scala中的一等函数,在Scala的Programming一书中有写:

函数文字被编译成一个类,在运行时实例化时是一个函数值。

当一个程序中会使用很多一流的函数时,这会影响JVM的PermGen空间吗?因为编译器不是为简单函数生成类,而是为函数值的每个变体生成类(例如,在部分应用函数的不同定义的情况下)。

0 投票
1 回答
816 浏览

java - 在 tomcat 服务器中运行应用程序有什么问题?

最近我创建了一个基于 maven 的 web 项目,并使用 tomcat 作为应用程序服务器来调试...

但是直接从项目上下文菜单运行应用程序后,tomcat 经常死机(pergem 错误意味着内存不足)。

最糟糕的是它创建了许多空闲线程,并且它们都不能被手动杀死。

而且tomcat状态也是NetBeans检测不到的,不能停止重启。我必须重新启动系统才能清理它们。

我的系统是 Fedora 12 x86... Java 版本是 SUN JDK 6 update 17。NetBeans 版本是 6.7.1。

我试图为此创建一个错误,但 NetBeans 开发人员拒绝了它……我很惊讶这是使用 NetBeans 开发 Web 应用程序的一大障碍。

今天我在最新的NetBeans 6.8rc1中使用了JBoss 5.1,也遇到了同样的问题……我尝试调整VM参数并分配更多内存,但没有效果。

我已经通过 seam ant build script 将几个 seam 示例部署到 JBoss 5.1,没有问题。但是我改用 NetBeans 来执行此操作,由于内存不足而失败。

怎么了????

0 投票
4 回答
18178 浏览

java - Java 类 (PermGen) 内存泄漏(Web 应用程序) - 通用解决方案?

我知道,我有一个 perm gen 内存泄漏。使用 jvisualvm 进行分析表明,在进行热部署时(例如,在 tomcat、WebSphere、WebLogic 等中停止和启动应用程序而不杀死 JVM) - PermGen 空间不断增加。

在阅读、使用 jhat 和其他高级工具后,我意识到我可能WebAppClassLoader在其父类加载器的某个地方引用了来自类的引用。

即使我在 jhat 上做了一些基于 JavaScript 的大量查询,我也无法确定它

是否有一个简单的实用程序可以找出谁负责您的类加载器不被垃圾收集(从而允许对其加载的类进行垃圾收集)?

我尝试了 JProfiler、jvisualvm、jhat 和很多 Google

致所有 LMGTFY 的朋友——我已经花了大约一天半的时间阅读论坛的分步说明,但运气不佳。我正在寻找输出的实用程序或代码:

类 Y 的对象 X 是唯一的 GC 根,它可以防止您的类被删除。

0 投票
1 回答
1899 浏览

hibernate - 是否可以在 Glassfish 中进行干净的取消部署?

我意识到任何使用休眠的应用程序都无法在 Glassfish 2.1.1 中完全取消部署。许多类在取消部署过程后仍保留在内存中,您可以使用 jmap 和 jhat 进行检查。

我做了几次测试,发现只有休眠的应用程序没有一个 clen undeploy 进程。在所有情况下,我的 Hibernate 数据库提供程序都是 jTDS 1.2.5。

您甚至不需要运行应用程序。如果您只是部署,然后立即取消部署,您将在内存中实现多个类,许多来自您的应用程序,许多来自 hibernate 及其依赖项。

是否可以在 Glassfish v2.1.1 中进行干净的取消部署?我一直在用完 permgen 空间。

0 投票
4 回答
11701 浏览

java - PermGen 空间的意义

java中PermGen空间的意义是什么?

0 投票
1 回答
551 浏览

java - 将 VM 上的 JMX 属性设置为命令行参数

我已经做了一些搜索,但似乎无法找到一种方法来做到这一点。

我们想通过 JMX 主动监控我们的 permgen 空间。似乎最好的方法是通过“PS Perm Gen”MemoryPool 上的 UsageThreshold 属性。默认情况下,此设置为 0。有没有办法将其或任何 JMX 属性指定为 VM 的 -D 参数,以便可以在启动时自动设置?还是有另一种自动加载 JMX 属性的机制?

谢谢。

0 投票
2 回答
831 浏览

tomcat - Tomcat 应用程序:图像上传时经常出现 OutOfMemory PermGen 异常

我有一个 tomcat 6 应用程序,我设置了 -Xms512m -Xmx1024m 的参数。我认为 4 GB RAM 中的 1 GB 内存就足够了,但事实并非如此。在应用程序停止/启动多次(从 tomcat 管理器)以及图像上传(有时)时,我遇到 OutOfMemory PermGen 空间错误并且站点停止响应。我应该再增加一些内存吗?我还能从 tomcat 方面做些什么,以免遇到 PermGen 空间问题?提前感谢您的指针/提示等。

0 投票
3 回答
6427 浏览

java - Java HotSpot 1.6 VM,垃圾收集 - 可怕的 PermGen

我的应用程序显示“老一代”/“老一代”的大小不断增加,当达到“老一代”的最大限制时,PermGen 的大小突然增加。这是我的一代尺寸:

这是在 32 位 Fedora 上,所以不能有比这更大的堆。

该应用程序没有进行任何花哨的类加载,尽管它使用 Spring IOC 和 Hibernate,但 Spring App-context.xml 定义了大约 1000 个 Bean。

这个应用程序从 175MB PermGen 开始,在几小时内稳步增加到 ~250MB,一直保持到 Tenured Generation 达到 ~780 MB,然后 permgen 跃升至 ~500MB,而 Old Gen 下降到 ~500MB。

这迫使我每天重新启动应用程序,并让我真正害怕即将出现的 OutOfMemory 错误。任何见解都会非常有帮助。

感谢 Gala101

5 月 13 日:有人能解释一下“老一代”被垃圾收集时会发生什么吗?
jvm 是否将'Old Gen' 中的集合放入 PermGen?
我的 PermGen 峰值仅在从“Old Gen”收集时才会出现,OldGen 大小的减小也与 PermGen 大小的增加密切相关。
PS:我不做任何实时部署/取消部署,因为那肯定会吃掉 PermGen。
以下是我的监控页面的当前截图:(已提交的部分刚刚从 ~250 MB 跃升至 500 MB)