这是一个熟悉的老问题,但我真的想一劳永逸地把它放在床上!我设置了以下 JVM 标志:
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=true
但我仍然观察到每个部署周期的 permgen 使用量都增加了 50MB。我正在使用 Tomcat 管理器应用程序进行远程部署,而 Grails 处于生产模式。
如果它变得太满,那么 akill -9
是必要的!
我可能会尝试使用 JRockit,但现在也不是一个选项。在生产环境中,我真的不认为每隔一段时间就必须反弹整个容器是可以接受的。