如何在 weblogic 12c 上添加 CMS GC 调整

how to add CMS GC tuning on weblogic 12c

我了解到 weblogic 12C 带有并行垃圾收集算法。但是如何以及在何处将 CMS(并发标记清除收集器,并发收集器)添加到我当前的 weblogic 12c。任何帮助表示赞赏。

您将这些添加到启动 weblogic 服务器的 JVM,这将进入文件 startWeblogicServer 或 startManagedWeblogicServer 或 setDomainENV

您可以在 server/bin 目录中找到它们。

我从 Oracle 文档中找到了答案。我粘贴在这里,因为它会帮助其他人。

使用 Sun 调整垃圾收集 JDK 使用 Sun 的 JDK 时,调整垃圾收集性能的目标是减少执行完整垃圾收集周期所需的时间。您不应尝试调整 JVM 以最小化完全垃圾回收的频率,因为这通常会导致最终强制垃圾回收周期可能需要几整秒才能完成。

在生产服务器的生命周期内实现短垃圾收集时间的最简单和最可靠的方法是使用固定堆大小的默认收集器和并行年轻代收集器,将新生代大小限制为最多整个堆的三分之一。

建议大多数引擎层服务器使用以下示例 JVM 设置:

 -server -Xmx1024m -XX:MaxPermSize=128m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseTLAB -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0 -XX:CMSIncrementalDutyCycle=10 -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=256 -XX:CMSInitiatingOccupancyFraction=60 -XX:+DisableExplicitGC 

对于副本服务器,使用示例设置:

 -server -Xmx3072m -XX:MaxPermSize=128m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseTLAB -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0 -XX:CMSIncrementalDutyCycle=10 -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=256 -XX:CMSInitiatingOccupancyFraction=60 -XX:+DisableExplicitGC 

以上选项效果如下:

  • -XX:+UseTLAB—使用线程本地对象分配块。这通过减少对共享堆锁的争用来提高并发性。

  • -XX:+UseParNewGC——使用并行版本的新生代复制收集器和并发标记清除收集器。 这通过并行使用所有可用的 CPU 来最大限度地减少暂停。
    收集器兼容默认收集器和
    并发标记和清除 (CMS) 收集器。

  • -Xms, -Xmx - 在堆大小上设置边界以增加垃圾收集的可预测性。堆大小限制在
    副本服务器,这样即使 Full GC 也不会触发 SIP
    重传。 -Xms 设置起始大小以防止引起的停顿 通过堆扩展。

  • -XX:MaxTenuringThreshold=0—使每个 NewGC 周期都可以使用完整的 NewSize,并通过不评估 tenured
    来减少暂停时间 对象。从技术上讲,此设置将所有活动对象提升到
    老一代,而不是复制他们。

  • -XX:SurvivorRatio=128—指定高幸存者比率,与零任期阈值一起确保很少 space 为缺席的幸存者保留。