当前位置: 首页 > 面试题库 >

解决PermGen问题的各种选项

昌栋
2023-03-14
问题内容

我正在研究有关Java 6 18 VM上垃圾回收的各种选项,并希望有一些指导。

我们在JBoss上运行我们的应用程序,并且在重新部署期间偶尔会出现臭名昭著的PermGen错误。关于解决或缓解此问题的最佳方法,Internet上存在许多相互矛盾且过时的信息。

从我所看到的,以下是正确的:

  • VM选项本身 无法解决此问题 ,只能将其推迟。
  • 解决此问题的唯一可靠方法是修复Application Server本身(不太可能)或Application Server中运行的代码(我们的代码或第三方库)中的编码错误(可能性更大)。Permgen的填充通常是从应用程序类加载器加载的对象到应用程序服务器类加载器加载的对象的引用的结果,从而防止了应用程序类加载器的垃圾回收。

因此,我有两个问题:

  1. 以上正确吗?
  2. 哪里做VM选项CMSClassUnloadingEnabled,并CMSPermGenSweepingEnabled来到这个?从我可以看到的CMSClassUnloadingEnabled替代或隐式启用CMSPermGenSweepingEnabled。它们中的任何一个对上述问题有帮助吗?

问题答案:

不幸的是,答案是:

  1. 这些VM选项只会推迟该问题。

基本问题是GC不会垃圾收集强可到达的对象。您需要弄清楚为什么在重新部署之后仍可以访问那些旧的应用程序类加载器…并修复泄漏。

另外,也可以放弃生产服务器上的热部署,或者更频繁地重新启动Web容器(例如JBoss)。



 类似资料:
  • 本文向大家介绍NodeJs在Linux下使用的各种问题解决,包括了NodeJs在Linux下使用的各种问题解决的使用技巧和注意事项,需要的朋友参考一下 环境:ubuntu16.04 ubuntu中安装NodeJs 通过apt-get命令安装后发现只能使用nodejs,而没有node命令 如果想避免这种情况请看下面连接的这种安装方式: 拓展见:Linux下Nodejs安装(完整详细) 如果想解决问题

  • 本文向大家介绍解决navicat 链接oracle时出现的各种问题,包括了解决navicat 链接oracle时出现的各种问题的使用技巧和注意事项,需要的朋友参考一下 1. ORA-28040: 没有匹配的验证协议  方法:在Oracle的安装路径下找到sqlnet.ora文件。(我的安装路径E:\app\sa1\product\12.2.0\dbhome_1\network\admin\sqln

  • 本文向大家介绍详解Python安装tesserocr遇到的各种问题及解决办法,包括了详解Python安装tesserocr遇到的各种问题及解决办法的使用技巧和注意事项,需要的朋友参考一下 Tesseract的安装及配置 在Python爬虫过程中,难免遇到各种各样的验证码问题,最简单的就是​这种验证码了,那么在遇到验证码的时候该怎么办呢?我们就需要OCR技术了,OCR-即Optical Charac

  • 本文向大家介绍mysql安装时出现各种常见问题的解决方法,包括了mysql安装时出现各种常见问题的解决方法的使用技巧和注意事项,需要的朋友参考一下 小编为大家整理许多mysql安装时出现各种常见问题的解决方法,供大家参考,具体内容如下 问题一: 当各位在安装、重装时出现could not start the service mysql error:0 原因: 卸载mysql时并没有完全删除相关文件

  • 我正在尝试使用PHPBrew安装PHP5.4,但出现以下错误: 用 我的操作系统:

  • 本文向大家介绍appium运行各种坑爹报错问题及解决方法【推荐】,包括了appium运行各种坑爹报错问题及解决方法【推荐】的使用技巧和注意事项,需要的朋友参考一下 1. error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress   之前的会话没有