Что означает «сбой продвижения» в журнале JVM G C? - PullRequest
1 голос
/ 17 июня 2020
2020-06-17T12:54:16.995+0800: 681976.777: [GC (Allocation Failure) 2020-06-17T12:54:16.995+0800: 681976.777: [ParNew (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  (promotion failed): 1823484K->1883608K(1887488K), 0.4255307 secs]

2020-06-17T12:54:17.421+0800: 681977.202: [CMS: 952879K->532413K(2097152K), 2.9620031 secs] 2776364K->532413K(3984640K), [Metaspace: 211696K->211696K(1241088K)], 3.3881912 secs] [Times: user=3.23 sys=0.65, real=3.39 secs] 

У меня вопрос, что означает этот журнал?

(0: promotion failure size = 2)  (1: promotion failure size = 3)  (2: promotion failure size = 17912169)  (3: promotion failure size = 3)  

1 Ответ

3 голосов
/ 18 июня 2020

Вы не сказали, какой JDK / JVM вы используете и какую сборку мусора, но исходя из того, что я нашел, это CMS, которая давно устарела go и удалена в JDK 14: https://openjdk.java.net/jeps/363 Вам следует серьезно подумать о переходе на более современный JDK / G C.

Тем не менее, похоже, что G C не смог «продвинуть» объекты из Youn от поколения к Старому поколению из-за недостатка места (памяти) в Старом поколении или его фрагментации. Вот несколько ссылок, по которым обсуждается эта проблема:

...