Я изо всех сил пытаюсь понять следующую ошибку / предупреждение, вызванное новой реликвией:
Early symptoms of memory exhaustion have been detected in this time window.
Ниже представлены диаграммы профилей на основе журналов.
Хотелось бы понять:
Я заметил такое поведение при отправке нового вызова REST в нашу службу исполнителя задач (например, executorService.submit(() -> restconecto.post(..))
). Я попытался отправить logger.info()
, и он работает нормально, но похоже, что проблема заключается в длинном опросе. Ниже моя конфигурация GC:
-Xms2048m -Xmx2048m
Спасибо за любые идеи.
Сборщик мусора - это поток демона, который запускается при запуске JVM, а демон останавливается, когда останавливаются все потоки, не являющиеся демонами. Причина, по которой сборщик мусора постоянно работает, а приложение никогда не очищается, скорее всего, заключается в том, что всегда есть что собрать (это может быть даже фоновая задача). Конечный пользователь не может управлять сборщиком мусора.
На самом деле не понимаю вашего вопроса
См. 1.
Ваша куча не должна быть заполнена, чтобы сработало предупреждение. По умолчанию настройки реликвии следующие:
Memory threshold: 20%
Garbage collection CPU threshold: 10%
Их, конечно, можно настроить, но в основном это означает, что если доступная память меньше порогового значения, будет срабатывать предупреждение.
Как вы заметили при отправке запроса REST (в зависимости от фактически отправленного запроса и того, как ваше приложение структурировано / спроектировано), этот конкретный запрос может быть «тяжелым» для обработки приложением, поэтому он может использовать больше памяти, чем вы могли ожидать.
Некоторые комментарии по вашим пунктам: 1. Если я не ошибаюсь, то я читал, что коллекция молодого поколения - это коллекция для всех 4 GC. Проблема с параллельным сборщиком заключается в том, что сборщик мусора использует несколько потоков для выполнения сбора, и, как следствие, память eden должна быть полностью восстановлена после молодой коллекции. Я вижу, что, когда размер eden уменьшается в размере, выживаемость и старые приращения увеличиваются, однако eden никогда не очищается 4. Спасибо за ссылку на документ.