解决PermGen问题的各种选项
我正在研究围绕Java 6 18 VM上的垃圾收集的各种选项,并希望获得一些指示。
我们在JBoss上运行我们的应用程序,并偶尔在重新部署过程中出现臭名昭着的PermGen错误。 互联网上有许多相互矛盾和过时的信息,说明解决或缓解这个问题的最佳方法。
从我所看到的,以下是正确的:
我有两个问题:
CMSClassUnloadingEnabled
和CMSPermGenSweepingEnabled
哪里进入? 从我可以看到CMSClassUnloadingEnabled
取代或隐式启用CMSPermGenSweepingEnabled
。 他们中的任何一个能帮助解决上述问题? 不幸的是,答案是:
基本的问题是GC不会垃圾收集一个强烈可及的对象。 你需要弄清楚为什么这些旧的应用程序类加载器在重新部署后仍然可以访问并修复泄漏。
或者,放弃生产服务器上的热重新部署,或更频繁地重新启动Web容器(例如JBoss)。
很长,但很好的阅读:http://victor-jan.blogspot.com/2010/05/classloader-leaks-dreaded.html总之,它是可以解决的。 不容易,但可以解决。
链接地址: http://www.djcxy.com/p/82383.html上一篇: The various options for solving PermGen problems
下一篇: How does a program know where the bss segment is located