我们运行一个基于Java的大型应用程序,该应用程 每隔3到6个月,似乎我们必须增加PERM内存的大小,否则我们可能会在应用程序启动时或上线后不久耗尽内存.该应用程序托管在JBoss 4.2和tomcat服务器中.
我们目前的设置是:
-server -Xms12G -Xmx12G -XX:MaxPermSize = 1536M -XX:+ UseConcMarkSweepGC -XX:+ CMSIncrementalMode
我可以帮忙,但想知道这看起来是否非常糟糕.
PERM内存似乎在启动时很快就会填满.使用jstat在90%到99%之间.
我们的Web应用程序包含30个单独的war文件.在JBoss中,这些部署为一个300MB以上的大型耳机文件.
对于我们这么多PERM的大型应用程序来说,这是正常的吗?
这是很多permgen空间.如果它立即填满,这意味着几乎不可思议的课程数量.这30个战争文件中的库中是否存在大量重复内容?您可以通过从靠近根的公共类加载器加载公共库来节省大量空间,而不是在每个单独的webapp中加载.尝试在服务器目录中安装公共库.