JVM - влияние Xms на выделенную память и сборку мусора - PullRequest
0 голосов
/ 21 октября 2018

У нас есть кот со следующими аргументами. Xms 1g. Xmx. 4g. Параллельный GC. Он установлен на машине Ubuntu с JVM 1.8.181

* 1002.на.Я не понимаю, что это происходит, когда общая JVM составляет всего 2,8 ГБ, а максимальная куча - 4 ГБ.Почему полный GC запускается, когда мамора не достигает максимума?

Когда я копал глубоко, я обнаружил, что в используемой и выделенной памяти произошли внезапные изменения;от 1 + ГБ до ~ 4 ГБ.Означает ли это, что, поскольку я установил минимальную кучу равной 1 ГБ, она увеличивается до 1 ГБ и, как только она там достигает, увеличивается до следующего шага?Из-за этого происходит сборка мусора?

Если да, это означает, что для того, чтобы избежать этой ситуации, мне нужно увеличить минимальную кучу?

Больше информации - это происходит, когдатам почти 0 трафика.Фоновый процесс не происходит.Я понимаю, что это может нарастить, но без использования чего-либо, как это может подняться!- Мне нужно самому в этом разобраться.

1 Ответ

0 голосов
/ 22 октября 2018

Когда вы устанавливаете минимальную кучу в 1 ГБ, она начинается с кучи в 1 ГБ, полагая, что сам процесс может быть от нескольких 100 МБ до нескольких ГБ больше, чем этот, в зависимости от того, какие библиотеки вы используете.т. е. размер резидента может быть больше.

Поскольку давление на кучу растет из-за активности, он может решить, что ему нужно увеличить размер кучи.Чтобы это произошло, должна быть значительная нагрузка, иначе она не изменит кучу.

...