《雄猫6》中反复出现的“彼尔姆根”
我一直在我的Tomcat 6服务器上收到“PermGen”错误。
我知道是什么应用程序导致了这个问题,但我不确定为什么会这样做。该应用程序使用MySQL 5并在JDK 6上运行。
是否有任何工具/建议来诊断或分析特定应用程序的潜在问题?
谢谢
我一直在我的Tomcat 6服务器上收到“PermGen”错误。
我知道是什么应用程序导致了这个问题,但我不确定为什么会这样做。该应用程序使用MySQL 5并在JDK 6上运行。
是否有任何工具/建议来诊断或分析特定应用程序的潜在问题?
谢谢
PermGen 用于存储类定义和暂存字符串池。您的代码可能正在填充它(如果它不必要地调用 intern),但更有可能的是,应用程序的默认值过小。
这是因为 Tomcat 会在您每次部署 WAR 时加载新类,或者,如果您在开发环境中工作,则每次编辑 JSP 时都会加载新类。这些最终应该被清理,但在活跃的开发环境中,您可以同时加载旧实例和新实例。或者,如果你在生产环境中并且拥有大型 Web 应用,则可能只需要更多空间。
要设置烫发量大小,请使用-XX:MaxPermSize=SIZE
以下链接可能会有所帮助:调整GC(这是1.5版本),GC常见问题解答(1.4.2版本),热点VM选项(我相信这是1.6)
请尝试以下 JVM 交换机:
-XX:+UseConcMarkSweepGC
-XX:+CMSPermGenSweepingEnabled
-XX:+CMSClassUnloadingEnabled
增加permgen空间只会延迟问题。-XX:MaxPermSize