繁体   English   中英

Java PERM等于多少(1.5GB似乎很高)

[英]How much is to much PERM in Java (1.5GB seems high)

我们运行一个正在开发的基于Java的大型应用程序。 似乎每隔3到6个月,我们就必须增加PERM内存的大小,否则我们可能会在应用程序启动时或联机后不久出现内存不足的风险。 该应用程序托管在JBoss 4.2和tomcat服务器中。

我们当前的设置是:

-服务器-Xms12G -Xmx12G -XX:MaxPermSize = 1536M -XX:+ UseConcMarkSweepGC -XX:+ CMSIncrementalMode

我可以帮忙,但想知道这是否太糟糕了。

PERM内存似乎在启动时很快就装满了。 使用jstat的90%到99%之间的任何值。

我们的Web应用程序包含30多个单独的战争文件。 在JBoss中,它们被部署为一个300MB +的大文件。

这么大的PERM对我们来说是大型应用程序正常吗?

那真是个充沛的空间。 如果马上填满,则意味着几乎无法想象的班级数量。 在那30个战争文件中的库中有很多重复项吗? 通过从更靠近根目录的公共类加载器(而不是在每个分离的webapp中)加载公共库,可以节省大量空间。 尝试在服务器目录中安装公用库。

1.5 GB的开销来管理12 GB的堆以及类代码/静态数据真的如此离谱吗?

您是否考虑过应用程序中可能存在内存泄漏? 尝试使用诸如JProfiler或Eclipse MAT之类的探查器工具来分析应用程序的内存使用情况。 我已经看到,简单的内存泄漏会在一段时间内导致巨大的中断。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM