-XX: G1ReservePercent и космос исчерпаны - PullRequest
1 голос
/ 24 июня 2019

Я пытаюсь понять, что на самом деле делает -XX:G1ReservePercent. Описания, которые я нашел в официальной документации , на самом деле не являются исчерпывающими:

Устанавливает процентную долю резервной памяти, которая должна оставаться свободной, чтобы уменьшить риск переполнения в космос. По умолчанию это 10 процентов. Когда ты увеличьте или уменьшите процент, обязательно отрегулируйте общее Куча Java на такую ​​же сумму.

и описание исчерпанной записи журнала в космосе таково:

Когда вы видите переполнение / исчерпанные сообщения в вашем журнале, G1 У GC недостаточно памяти ни для выжившего, ни для продвинутого объекты или для обоих.

[...]

Чтобы устранить проблему, попробуйте следующие настройки:

Увеличить значение опции -XX:G1ReservePercent (и общее соответственно куча) увеличить объем резервной памяти для "в космос".

[...]

Судя по цитате, to-space exhausted означает, что при проведении смешанной эвакуации у нас недостаточно свободного региона для перемещения выживших.

Но тогда это противоречит следующему официальному совету по настройке в случае Full GC (подчеркните мой):

Заставить G1 начать маркировку раньше. G1 автоматически определяет Инициирование порога процента занятости кучи (IHOP) на основе ранее поведение приложения. Если поведение приложения изменяется, эти предсказания могут быть неверными. Есть два варианта: Опустить цель Заполнение для того, когда начать космическое освоение путем увеличения буфера используется в адаптивном расчете IHOP путем изменения -XX:G1ReservePercent;

Так что же такое буфер и что делает настройка -XX:G1ReservePercent (с первого взгляда AdaptiveIHOP не имеет к этому никакого отношения ...)?

Сохраняет ли оно некоторое пространство кучи всегда зарезервированным, поэтому, когда происходит смешанная эвакуация, у нас всегда есть свободный регионг для перемещения выживших?

Или пространство используется для внутренних служебных задач G1? Если да, то неясно, какие данные содержатся в пространстве, поэтому они исчерпаны?

...