Размер кучи быстро увеличивается весенней загрузки приложения - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть приложение при весенней загрузке, использующее mongoDB и hibernate для MySQL.Размер кучи приложения постоянно увеличивается в производстве.Я предоставил максимальный размер кучи, равный 24 ГБ, что уже огромно.Сейчас используемая куча достигает 23 ГБ.Это хорошо, чтобы получить кучу дамп такой огромной памяти, это повлияет на производительность, поскольку это живое приложение.

Другой способ обнаружить утечку памяти в том же?Или другой способ анализа метрик спящего или монго?

1 Ответ

0 голосов
/ 12 декабря 2018

Попробуйте увидеть кучу памяти в jprofiler или jvisualvm.Одним из вариантов может быть то, что куча будет занимать всю предоставленную вами память, но использовать только ее часть.В общем случае это зависит от алгоритма сборщика мусора.Я бы порекомендовал вам выполнить следующие шаги:

1) Проверьте, действительно ли используется память, занятая кучей (вы можете увидеть это в jprofiler или jvisualvm).Если приложение забирает всю память, но не использует ее, вы можете ограничить ее некоторым разумным значением, используя аргумент Xmx jvm.

2) См. Использование памяти под нагрузкой и в режиме ожидания.Увидеть разницу.В зависимости от выполняемых вами операций, некоторые объекты могут находиться в памяти, но они должны собираться время от времени.

3) Если это действительно утечка, и вы видите, что память, зарезервированная jvm, действительно используется иникогда не освобождать - возьмите дамп памяти и посмотрите, какие объекты там находятся (попробуйте jprofiler или jvisualvm).Это даст вам подсказку, где искать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...