首页 > 解决方案 > 是否有一个普遍考虑的标准来确定 PermGen 和 Heap 空间之间的适当比例?

问题描述

我知道这些参数应该根据您的特定应用程序进行调整,但对于 JBoss 实例,我正在寻找堆空间和 perm gen 空间的普遍接受的比率或最大值。这将是我用作起点并稍后调整的内容。

就我而言,这是 Java 1.6 上的 JBoss 5。

标签: javaconfigurationheap-memory

解决方案


没有黄金比例,因为 Java 应用程序有各种形状和大小。对于多租户 WebSphere EE 服务器,由于加载了数十个企业 WAR,PermGen 将是巨大的,但对于小型嵌入式系统,PermGen 应该减少到绝对最小值。另一个极端是用 Java 编写的内存数据库,它承载 GB 的数据,但 PermGen 相对较小。

PermGen 通常由加载的类决定。除非存在ClassLoader泄漏或字节码生成库疯狂生成数百万个代理类,否则它的大小应该无关紧要。PermGen 上的 GC 很少是整个 GC 周期中最慢的部分。

幸运的是,在 Java 8+ 中,我们现在有了 MetaSpace 而不是 PermGen,而且我们不必再调整它的大小(尽管限制它是谨慎的)。


推荐阅读