CMS-initial-mark увеличивается, несмотря на флаг UseCMSInitiatingOccupancyOnly, и вызывает сбой в параллельном режиме

CMS-initial-mark начинается с 60% (что ожидается) и постоянно растет, несмотря на использование: -XX: + UseCMSInitiatingOccupancyOnly и -XX: CMSInitiatingOccupancyFraction = 60

Могу я попросить помощи, почему она увеличивается?

Флаги:

-Xms28g -Xmx28g -XX: PermSize = 512m -XX: MaxPermSize = 512m -Xss512k -XX: NewSize = 8g -XX: MaxNewSize = 8g -XX: SurvivorRatio = 6 -XX: + AlwaysPreTouch -verbose: + PrintGet: -XX: + PrintGCTimeStamps -XX: + UseConcMarkSweepGC -XX: + UseParNewGC -XX: + CMSConcurrentMTEnabled -XX: + CMSScavengeBeforeRemark -XX: CMSWaitDuration = 3600000 -XXX: + ExpeslicitCurrentMarket -XX: > -XX: CMSInitiatingOccupancyFraction = 60 -XX: + UseCMSInitiatingOccupancyOnly

Журнал GC:

08 / 25-18: 00: 48 [4] ‹48574> 145285.817: [CMS-concurrent-abortable-preclean-start]

25.08 - 18: 00: 51 [4] ‹48574> 145286.877: [GC (сбой выделения) 145286.877: [ParNew (сбой продвижения): 6332558K-> 6339431K (7340032K), 1,7870705 секунд] 145288.664: [CMS145288.749: [CMS-concurrent-abortable-preclean: 1,138 / 2,932 секунды] [Время: пользователь = 7,11, системный = 0,04, реальный = 2,93 секунды]

08 / 25-18: 02: 14 [4] ‹48574> (сбой в параллельном режиме): 20937785K-> 20947677K (20971520K), 82,4977633 секунды] 27269752K-> 20947677K (28311552K), [Metaspace: 108472K-> 108472K (1148928K)], 84,2851262 секунды] [время: пользователь = 84,51, системный = 0,01, реальный = 84,29 секунды]

История oldGen:

08 / 25-18: 00: 34 [4] ‹48574> 145271.408: [GC (начальная метка CMS) [1 начальная марка CMS: 20933339K (20971520K)] 21000667K (28311552K), 0,0057867 секунд] [Times: user = 0,04 sys = 0,00, real = 0,01 секунды]

08 / 25-18: 02: 31 [4] ‹48574> 145388.639: [GC (начальная метка CMS) [1 начальная метка CMS: 20947677K (20971520K)] 21005038K (28311552K), 0,0044022 секунды] [Times: user = 0,03 sys = 0,00, real = 0,01 секунды]


person user2695543    schedule 07.09.2017    source источник


Ответы (1)


(сбой в параллельном режиме): 20937785K-> 20947677K (20971520K), 82,4977633 секунды] 27269752K-> 20947677K (28311552K)

У вас есть 28 ГБ общей кучи, 8 ГБ из которых относятся к новому поколению, а 20 ГБ остаются для старого поколения. После сбоя в параллельном режиме (по сути, полный сборщик мусора) в куче остается чуть меньше 20 ГБ. Это означает, что набор живых объектов оставляет менее 1 ГБ свободной емкости в старом поколении, если все будет продвинуто.

Либо ваша куча слишком мала - либо молодое поколение слишком велико - для того, чтобы ваша рабочая нагрузка соответствовала 40% передышке, требуемой вашим IHOP, либо ваше приложение протекает.

person the8472    schedule 08.09.2017