Java Проблема сбора мусора с использованием Liferay на JBoss: G C выполняется много раз - PullRequest
0 голосов
/ 18 февраля 2020

У нас проблемы со сборкой мусора в среде, состоящей из Liferay 6.2 и JBoss 6.4.5.

Сервер работает без сбоев, а процесс G C выполняется нормально, но в какой-то момент G C процесс начинает выполняться много раз:

GC Duration time

Мы работаем на сервере памяти 16 ГБ со следующей конфигурацией памяти: Memory distribution

JAVA_OPTS = "$ JAVA_OPTS -Xms6144m -Xmx6144m -XX: MetaspaceSize = 512 м -XX: MaxMetaspaceSize = 2048 м"

Нет утечек памяти.

Может ли кто-нибудь помочь нам объяснить, почему G C ведет себя так?

Заранее большое спасибо.

1 Ответ

0 голосов
/ 18 февраля 2020

Глядя на график, я предполагаю, что вы используете ParallelG C в JSM HotSpot.

ParallelG C переключается из режима работы поколений (молодых / старых) в режим единого пространства, если набор данных в реальном времени не подходит размер старого пространства.

В одном месте каждая коллекция заполнена. G C.

Решение заключается в увеличении старого пространства. Это может быть сделано либо путем увеличения размера кучи, либо путем уменьшения нового размера (например, опция -Xmn1g).

...