Недавно я увидел странное поведение с G1GC.Я использую Java 1.8.0_152 и установил алгоритм GC как G1GC с дедупликацией строк.Недавно я увидел, что объем памяти процесса Java (полученный из top -c) составляет 6,8 г, а фактический размер кучи (S0U + S1U + EU + OU) - 4 ГБ.С 260 потоками (с использованием xss 1MB по умолчанию) я вижу, что 2.54 ГБ памяти занимает сам сборщик G1, который кажется довольно большим .. Я что-то здесь упускаю ... Может кто-нибудь, пожалуйста, помогите мне здесь ... относительно того, почему сам G1GC являетсязанимает столько памяти .. Что произойдет, если я увеличу кучу до 6 ГБ ... Будет ли G1GC пытаться взять больше, чем существующая ОЗУ (8 ГБ), и потерпит неудачу, или он выполнит полный GC (что, я считаю, должно) при этомвремя
Мой XMX имеет размер 7 ГБ
Похоже, что внутренним компонентам G1GC требуется дополнительная память.Я выполнил полный сборщик мусора через jstat, и объем занимаемого им процесса java увеличился на 0,1 ГБ.Это заставляет меня думать, что внутренности G1GC забирают эту память.Помимо сокращения объема оперативной памяти, есть еще что-то, чтобы гарантировать, что внутренности G1GC не занимают слишком много памяти