java - 是否有一个普遍考虑的标准来确定 PermGen 和 Heap 空间之间的适当比例?
问题描述
我知道这些参数应该根据您的特定应用程序进行调整,但对于 JBoss 实例,我正在寻找堆空间和 perm gen 空间的普遍接受的比率或最大值。这将是我用作起点并稍后调整的内容。
就我而言,这是 Java 1.6 上的 JBoss 5。
解决方案
没有黄金比例,因为 Java 应用程序有各种形状和大小。对于多租户 WebSphere EE 服务器,由于加载了数十个企业 WAR,PermGen 将是巨大的,但对于小型嵌入式系统,PermGen 应该减少到绝对最小值。另一个极端是用 Java 编写的内存数据库,它承载 GB 的数据,但 PermGen 相对较小。
PermGen 通常由加载的类决定。除非存在ClassLoader
泄漏或字节码生成库疯狂生成数百万个代理类,否则它的大小应该无关紧要。PermGen 上的 GC 很少是整个 GC 周期中最慢的部分。
幸运的是,在 Java 8+ 中,我们现在有了 MetaSpace 而不是 PermGen,而且我们不必再调整它的大小(尽管限制它是谨慎的)。
推荐阅读
- sql-insert - 变量托管的查询中的 INSERT INTO SELECT 错误
- machine-learning - 显示反转 ROC 曲线
- java - 打开特定活动时,Android 区域设置重置为默认语言
- python - 查找本地人姓名时出现 KeyError
- python - 如何在python中分组反转数组?
- c - 将 C 链接到 LLVM 中的对象
- cordova - 在 Google Play 商店中上传 apk 文件时出现 apksigner 错误 - MIN_SIG_SCHEME_FOR_TARGET_SDK_NOT_MET
- python - 如何在熊猫中对具有条件的列应用聚合函数
- docker - nginx docker 不重定向 gogs docker 容器
- python-3.x - 无法在 TTP(模板文本解析器)python 中访问以前的模板变量