Шаблон GC выглядит как утечка памяти.
Глядя на вашу статистику дампа кучи, я вижу задачи 3M, ожидающие выполнения в пулах потоков.
Могу предположить, что вы используете пулы потоков с неограниченной очередью задач.Ваша входящая скорость передачи сообщений больше, чем вычислительная мощность системы, поэтому отставание растет, потребляя больше памяти, что в конечном итоге приводит к смерти GC.
В зависимости от вашего случая, вы можете либо ограничить размер очереди для пула потоков, либо попробоватьоптимизировать объем памяти задач очереди.
Ограничение размера очереди создаст обратное давление на предыдущем этапе обработки.Если это простой таймер, управляемый таймером, который является производителем для пула потоков, то эффект будет уменьшать интервал опроса (так как он будет блокировать ожидание места в очереди).
Оптимизация занимаемой памяти задач будет работать только при ваших возможностях обработкив среднем больше, чем частота входящих задач, и проблема вызвана временным всплеском.