Подтвердить что ты не робот

Что такое порог GC метаданных и как его настроить?

В приложении у меня есть -verbose:gc

[GC (Metadata GC Threshold)  8530310K->2065630K(31574016K), 0.3831399 secs]
[Full GC (Metadata GC Threshold)  2065630K->2053217K(31574016K), 3.5927870 secs]
[GC (Metadata GC Threshold)  8061486K->2076192K(31574016K), 0.0096316 secs]
[Full GC (Metadata GC Threshold)  2076192K->2055722K(31574016K), 0.9376524 secs]
[GC (Metadata GC Threshold)  8765230K->2100440K(31574016K), 0.0150190 secs]
[Full GC (Metadata GC Threshold)  2100440K->2077052K(31574016K), 4.1662779 secs]

Что это за "порог GC метаданных" и как его уменьшить. Примечание: в то время как Full GC тратит много времени на очистку, он действительно сильно очищает, т.е. Было бы лучше, если бы он этого не делал.

4b9b3361

Ответ 1

В сообщении журнала сообщается, что GC был вызван сбоем распределения метаданных. Metaspaces содержат метаданные класса. Они появились в Java 8, чтобы заменить PermGen.

Ниже приведены некоторые параметры настройки Metaspaces.
Вы можете установить один или несколько из следующих параметров:

-XX:MetaspaceSize=100M Устанавливает размер выделенного пространства метаданных класса, которое будет запускать сборку мусора при первом превышении;

-XX:InitialBootClassLoaderMetaspaceSize=32M, чтобы увеличить загрузчик загрузочного класса Metaspace;

-XX:MinMetaspaceFreeRatio=50, чтобы сделать Metaspaces более агрессивно;

-XX:MaxMetaspaceFreeRatio=80, чтобы уменьшить вероятность сокращения Metaspaces;

-XX:MinMetaspaceExpansion=4M размер минимального размера, при котором метапроцесс не используется,

-XX:MaxMetaspaceExpansion=16M максимальный размер, чтобы развернуть Metaspace без полного GC.

Ответ 2

Хотя уже есть принятый ответ, хотелось бы упомянуть, что есть также:

-XX:MaxMetaspaceSize=<NNN> where <NNN> - это максимальный объем пространства для метаданных класса (в байтах).

Также из здесь,

Вызывается сбор мусора мертвых классов и загрузчиков классов как только использование метаданных класса достигнет "MaxMetaspaceSize".

В этом сообщении есть список доступных опций .