1

除了 CMSIncrementalMode,我有两个具有相同 GC 配置的应用程序节点。以下是 GC Viewer 的屏幕截图,适用于有和没有 CMSIncrementalMode 的应用程序。

不使用 CMSIncrementalMode 的应用程序的吞吐量显着降低,并且预清理被中止并显示消息“CMS:由于时间而中止预清理”。即使老一代中有很多空白空间,这些对象也没有提升到老一代。

我知道增量较小的并发步骤可能已经停止了 preclean 中止。但我试图理解以下内容。

  1. 为什么中止的预清理会对应用程序产生如此巨大的负面影响?还是其他原因造成了负面影响?

  2. CMSIncrementalMode 如何帮助年轻一代的次要 GC。增量模式不只是在旧的 gen 集合上吗?

  3. 为什么 ParNew 计数与 initial-mark 和 remark 不同。如果没有 CMSIncrementalMode,我会看到更多标记和备注。使用 CMSIncrementalMode,我看到了更多 ParNews。

GC 配置:

Total Heap: 3GB 
New: 1800MB 
UseConcMarkSweepGC 
CMSClassUnloadingEnabled 

GC 查看器统计信息:
应用程序使用 CMSIncrementalMode
应用程序不使用 CMSIncrementalMode

提前致谢

4

0 回答 0